diff --git a/packages/opendesign/src/components/_shared/utils.ts b/packages/opendesign/src/components/_shared/utils.ts index 7419a67eccdf2d737b0601a48c92e3546154d7c1..e4b00010a3065e388f46f7dc9645f3aa7620b272 100644 --- a/packages/opendesign/src/components/_shared/utils.ts +++ b/packages/opendesign/src/components/_shared/utils.ts @@ -4,7 +4,7 @@ import type { ThrottleSettings, DebounceSettings } from 'lodash-es'; export function isBoolean(val: unknown): val is boolean { return typeof val === 'boolean'; } -export function isString(val: unknown) { +export function isString(val: unknown): val is string { return typeof val === 'string'; } export function isNumber(val: unknown): val is number { diff --git a/packages/opendesign/src/components/index.scss b/packages/opendesign/src/components/index.scss index 9164cf5307be7aeb510138fbd97cd0ba6d5c79af..98357b32dfac1c5088126ac32aae6855e2d06935 100644 --- a/packages/opendesign/src/components/index.scss +++ b/packages/opendesign/src/components/index.scss @@ -2,3 +2,4 @@ @import './button/style/index.scss'; @import './switch/style/index.scss'; @import './radio/style/index.scss'; +@import './radio-group/style/index.scss'; diff --git a/packages/opendesign/src/components/index.ts b/packages/opendesign/src/components/index.ts index 4fadf1ddb7feae2dde5308737142365522c87cc2..08d57631c5b26b0ef00e4a8b3dd65b776879f57b 100644 --- a/packages/opendesign/src/components/index.ts +++ b/packages/opendesign/src/components/index.ts @@ -7,3 +7,5 @@ export * from './button'; export * from './switch'; export * from './radio'; + +export * from './radio-group'; \ No newline at end of file diff --git a/packages/opendesign/src/components/radio/ORadioGroup.vue b/packages/opendesign/src/components/radio-group/ORadioGroup.vue similarity index 100% rename from packages/opendesign/src/components/radio/ORadioGroup.vue rename to packages/opendesign/src/components/radio-group/ORadioGroup.vue diff --git a/packages/opendesign/src/components/radio-group/index.ts b/packages/opendesign/src/components/radio-group/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..87e333858fcd2f0bc29c961579059464968823f2 --- /dev/null +++ b/packages/opendesign/src/components/radio-group/index.ts @@ -0,0 +1,13 @@ +import type { App } from 'vue'; + +import _ORadioGroup from './ORadioGroup.vue'; + +export * from './types'; + +const ORadioGroup = Object.assign(_ORadioGroup, { + install(app: App) { + app.component(_ORadioGroup.name, _ORadioGroup); + }, +}); + +export { ORadioGroup }; diff --git a/packages/opendesign/src/components/radio/provide.ts b/packages/opendesign/src/components/radio-group/provide.ts similarity index 85% rename from packages/opendesign/src/components/radio/provide.ts rename to packages/opendesign/src/components/radio-group/provide.ts index e0d9ab18c79db3f657c97d3703459783846ad873..93ae861cfa9d13a87c68acf697e28b59e9c0d6e3 100644 --- a/packages/opendesign/src/components/radio/provide.ts +++ b/packages/opendesign/src/components/radio-group/provide.ts @@ -4,4 +4,4 @@ export const radioGroupInjectKey: InjectionKey<{ modelValue: Ref; disabled: Ref; onChange: (val: string | number | boolean) => void; -}> = Symbol('provide-radiogroup'); +}> = Symbol('provide-radio-group'); diff --git a/packages/opendesign/src/components/radio-group/style/index.scss b/packages/opendesign/src/components/radio-group/style/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..d69427ceffbae9a2eb76275e4bd49e5f5176ae32 --- /dev/null +++ b/packages/opendesign/src/components/radio-group/style/index.scss @@ -0,0 +1,18 @@ +@import './var.scss'; + +.o-radio-group { + display: inline-flex; + flex-wrap: wrap; + &.is-horizontal { + .o-radio + .o-radio { + margin-left: var(--radio-group-gap); + } + } + + &.is-vertical { + flex-direction: column; + .o-radio + .o-radio { + margin-top: var(--radio-group-gap); + } + } +} diff --git a/packages/opendesign/src/components/radio-group/style/index.ts b/packages/opendesign/src/components/radio-group/style/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..67aac616fc2524b146b7b078fd3b67c1bd3b4a6e --- /dev/null +++ b/packages/opendesign/src/components/radio-group/style/index.ts @@ -0,0 +1 @@ +import './index.scss'; diff --git a/packages/opendesign/src/components/radio-group/style/var.scss b/packages/opendesign/src/components/radio-group/style/var.scss new file mode 100644 index 0000000000000000000000000000000000000000..520e6ea9c31054e1eeeb4fa628f69fd116519d24 --- /dev/null +++ b/packages/opendesign/src/components/radio-group/style/var.scss @@ -0,0 +1,3 @@ +.o-radio-group { + --radio-group-gap: var(--o-gap-2); +} diff --git a/packages/opendesign/src/components/radio/types.ts b/packages/opendesign/src/components/radio-group/types.ts similarity index 100% rename from packages/opendesign/src/components/radio/types.ts rename to packages/opendesign/src/components/radio-group/types.ts diff --git a/packages/opendesign/src/components/radio/ORadio.vue b/packages/opendesign/src/components/radio/ORadio.vue index 4422834a0746e87e10f4e9de975def7459f15441..8a83b4846bdbf8128cc9da99c4a648bfd58ed2ac 100644 --- a/packages/opendesign/src/components/radio/ORadio.vue +++ b/packages/opendesign/src/components/radio/ORadio.vue @@ -1,6 +1,6 @@