sellmate-design-system-react 0.1.9 โ 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +1 -1
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +1 -1
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.cjs +69 -50
- package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.d.ts +2 -0
- package/dist/components/SCircleProgress/SCircleProgress.js +69 -50
- package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +1 -1
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SField/SField.cjs +1 -1
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.js +1 -1
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +36 -17
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.d.ts +1 -1
- package/dist/components/SFilePicker/SFilePicker.js +35 -17
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +1 -1
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +1 -1
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +43 -22
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +43 -22
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs +69 -50
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.js +69 -50
- package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
- package/dist/components/SLoadingContainer/loading.cjs +69 -50
- package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
- package/dist/components/SLoadingContainer/loading.js +69 -50
- package/dist/components/SLoadingContainer/loading.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +72 -50
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +3 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +72 -50
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.js +1 -1
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SRadio/SRadioGroup.cjs +1 -1
- package/dist/components/SRadio/SRadioGroup.cjs.map +1 -1
- package/dist/components/SRadio/SRadioGroup.js +1 -1
- package/dist/components/SRadio/SRadioGroup.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +8 -4
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +8 -4
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +82 -56
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +82 -56
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +1 -1
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +1 -1
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +1 -1
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +1 -1
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +120 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +120 -74
- package/dist/index.js.map +1 -1
- package/dist/styles.css +62 -21
- package/dist/theme.css +45 -21
- package/package.json +1 -1
|
@@ -122,7 +122,7 @@ function SRadioGroup({
|
|
|
122
122
|
role: "radiogroup",
|
|
123
123
|
className: cn(
|
|
124
124
|
"inline-flex",
|
|
125
|
-
direction === "vertical" ? "flex-col gap-[
|
|
125
|
+
direction === "vertical" ? "flex-col gap-[var(--cmp-radio-group-gap-vertical)]" : "flex-row gap-[var(--cmp-radio-group-gap-horizontal)]",
|
|
126
126
|
className
|
|
127
127
|
),
|
|
128
128
|
style,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/cn.ts","../../../src/components/SRadio/SRadio.tsx","../../../src/components/SRadio/SRadioGroup.tsx"],"names":["extendTailwindMerge","clsx","jsxs","jsx"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/cn.ts","../../../src/components/SRadio/SRadio.tsx","../../../src/components/SRadio/SRadioGroup.tsx"],"names":["extendTailwindMerge","clsx","jsxs","jsx"],"mappings":"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","file":"SRadioGroup.cjs","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\n/**\n * theme.css ์ --text-* ๋ ๊ธฐ๋ณธ Tailwind ํฐํธ์ฌ์ด์ฆ ์ค์ผ์ผ(xs/sm/base...)์ด ์๋\n * ์ซ์ ์ค์ผ์ผ(10~32)์ด๋ผ, ํ์ฅ ์์ด๋ tailwind-merge ๊ฐ ์ด๋ฅผ ํ
์คํธ ์ปฌ๋ฌ ๊ทธ๋ฃน์ผ๋ก\n * ์ค์ธํด text-12 ๊ฐ์ ํด๋์ค๋ฅผ text-(--color-var) ๋ค์์ ์ถฉ๋ ์ ๊ฑฐํด๋ฒ๋ฆฐ๋ค.\n */\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n 'font-size': [{ text: ['10', '11', '12', '13', '14', '16', '18', '20', '24', '28', '32'] }],\n },\n },\n});\n\n/**\n * className ๋ณํฉ ์ ํธ.\n * clsx๋ก ์กฐ๊ฑด๋ถ ํด๋์ค๋ฅผ ํฉ์น๊ณ , tailwind-merge๋ก Tailwind ํด๋์ค ์ถฉ๋์ ํด์ํ๋ค.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { type CSSProperties, type HTMLAttributes } from 'react';\nimport { cn } from '../../lib/cn';\n\n/** ๋ผ๋์ค ๊ฐ ํ์
(sd-radio SRadioValue) */\nexport type SRadioValue = string | number | boolean;\n\nexport interface SRadioProps {\n /** ์ด ๋ผ๋์ค์ ๊ฐ */\n val: SRadioValue;\n /** ๊ทธ๋ฃน์ ํ์ฌ ์ ํ ๊ฐ */\n value?: SRadioValue | null;\n /** ๋ผ๋ฒจ */\n label?: string;\n /** ๋นํ์ฑ */\n disabled?: boolean;\n /** native radio name (form-agnostic ๊ทธ๋ฃนํ) */\n name?: string;\n /** ์ ํ ๋ณ๊ฒฝ (sdUpdate) โ ์ ํ๋ val ์ ๋ฌ */\n onValueChange?: (val: SRadioValue) => void;\n className?: string;\n style?: CSSProperties;\n}\n\n/** SRadio โ sd-radio ํฌํ
. value===val ์ด๋ฉด ์ ํ. ๋จ๋
๋๋ SRadioGroup ์์์ ์ฌ์ฉ. */\nexport function SRadio({\n val,\n value,\n label,\n disabled = false,\n name,\n onValueChange,\n className,\n style,\n}: SRadioProps) {\n // key/name ์์ฑ์ฉ ๋ฌธ์์ด ํํ\n const valStr = String(val);\n const checked = value === val;\n const select = () => {\n if (!disabled && !checked) onValueChange?.(val);\n };\n\n // name ์ด ์์ผ๋ฉด ๋ค์ดํฐ๋ธ <input type=\"radio\"> ๊ฐ ์ค์ ์ํธ์์ฉ ์ปจํธ๋กค์ด ๋๋ค.\n // ์ด๋ label ์๋ role/tabIndex/ํคํธ๋ค๋ฌ๋ฅผ ์ฃผ์ง ์๋๋ค โ ์ํธ์์ฉ ์์ ์ค์ฒฉ\n // (role=\"radio\" ์์ native radio) ๋ฐ radio ์ญํ ์ค๋ณต์ ํผํ๋ค.\n const native = name != null && name !== '';\n\n // native ๋ชจ๋๊ฐ ์๋๋ฉด label ์์ฒด๊ฐ ์ปค์คํ
radio ๋ก ๋์ํ๋ค.\n const labelInteractiveProps: HTMLAttributes<HTMLLabelElement> = native\n ? {}\n : {\n 'role': 'radio',\n 'aria-checked': checked,\n 'tabIndex': disabled ? -1 : 0,\n 'onClick': select,\n 'onKeyDown': e => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n select();\n }\n },\n };\n\n return (\n <label\n {...labelInteractiveProps}\n className={cn(\n 'inline-flex items-center gap-[8px]',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer',\n className,\n )}\n style={style}\n >\n {native && (\n <input\n type=\"radio\"\n name={name}\n value={valStr}\n checked={checked}\n disabled={disabled}\n // ๋ค์ดํฐ๋ธ ๋ผ๋์ค๊ฐ ํฌ์ปค์ค/ํค๋ณด๋/์ ํ์ ๋ด๋นํ๋ค. label ์ด ๊ฐ์ธ๋ฏ๋ก\n // ๋ผ๋ฒจ ํด๋ฆญ๋ ์ด input ์ ํ ๊ธํ๋ฉฐ, onChange ๋ ๊ฐ์ด ์ค์ ๋ก ๋ฐ๋ ๋๋ง ๋ฐ์.\n onChange={() => onValueChange?.(val)}\n className=\"sr-only\"\n />\n )}\n <span\n className={cn(\n 'flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-full border border-solid border-[color:var(--rd-border)] bg-[var(--rd-bg)]',\n !disabled &&\n !checked &&\n 'hover:border-[color:var(--cmp-radio-border-hover)] hover:bg-[var(--cmp-radio-bg-hover)]',\n )}\n style={\n {\n '--rd-bg': disabled ? 'var(--cmp-radio-bg-disabled)' : 'var(--cmp-radio-bg-default)',\n '--rd-border': disabled\n ? 'var(--cmp-radio-border-disabled)'\n : checked\n ? 'var(--cmp-radio-border-active)'\n : 'var(--cmp-radio-border-default)',\n } as CSSProperties\n }\n >\n {checked && (\n <span\n className=\"h-[10px] w-[10px] rounded-full\"\n style={{\n background: disabled\n ? 'var(--cmp-radio-dot-disabled)'\n : 'var(--cmp-radio-dot-default)',\n }}\n />\n )}\n </span>\n {label && (\n <span\n className=\"grid text-[12px] leading-[20px]\"\n style={{\n color: disabled ? 'var(--cmp-radio-label-disabled)' : 'var(--cmp-radio-label-default)',\n }}\n >\n <span aria-hidden className=\"invisible font-medium\" style={{ gridArea: '1 / 1' }}>\n {label}\n </span>\n <span style={{ gridArea: '1 / 1', fontWeight: checked ? 500 : 400 }}>{label}</span>\n </span>\n )}\n </label>\n );\n}\n","'use client';\n\nimport { type CSSProperties } from 'react';\nimport { cn } from '../../lib/cn';\nimport { SRadio, type SRadioValue } from './SRadio';\n\nexport interface SRadioOption {\n /** ์ต์
๊ฐ (sd-radio-group SRadioOption.value) */\n value: SRadioValue;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SRadioGroupProps {\n /** ์ต์
๋ชฉ๋ก */\n options?: SRadioOption[];\n /** ํ์ฌ ์ ํ ๊ฐ */\n value?: SRadioValue | null;\n /** ๋ฐฐ์น ๋ฐฉํฅ */\n direction?: 'vertical' | 'horizontal';\n /** ์ ์ฒด ๋นํ์ฑ */\n disabled?: boolean;\n /** ๋ผ๋์ค name ์์ฑ (form-agnostic ๊ทธ๋ฃนํ) */\n groupName?: string;\n /** ์ ํ ๋ณ๊ฒฝ (sdUpdate) */\n onValueChange?: (val: SRadioValue) => void;\n className?: string;\n style?: CSSProperties;\n}\n\n/** SRadioGroup โ sd-radio-group ํฌํ
. options๋ฅผ SRadio๋ก ๋ ๋. */\nexport function SRadioGroup({\n options = [],\n value,\n direction = 'vertical',\n disabled = false,\n groupName,\n onValueChange,\n className,\n style,\n}: SRadioGroupProps) {\n return (\n <div\n role=\"radiogroup\"\n className={cn(\n 'inline-flex',\n direction === 'vertical'\n ? 'flex-col gap-[var(--cmp-radio-group-gap-vertical)]'\n : 'flex-row gap-[var(--cmp-radio-group-gap-horizontal)]',\n className,\n )}\n style={style}\n >\n {options.map(o => (\n <SRadio\n key={String(o.value)}\n val={o.value}\n value={value}\n label={o.label}\n name={groupName}\n disabled={disabled || o.disabled}\n onValueChange={onValueChange}\n />\n ))}\n </div>\n );\n}\n"]}
|
|
@@ -120,7 +120,7 @@ function SRadioGroup({
|
|
|
120
120
|
role: "radiogroup",
|
|
121
121
|
className: cn(
|
|
122
122
|
"inline-flex",
|
|
123
|
-
direction === "vertical" ? "flex-col gap-[
|
|
123
|
+
direction === "vertical" ? "flex-col gap-[var(--cmp-radio-group-gap-vertical)]" : "flex-row gap-[var(--cmp-radio-group-gap-horizontal)]",
|
|
124
124
|
className
|
|
125
125
|
),
|
|
126
126
|
style,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/cn.ts","../../../src/components/SRadio/SRadio.tsx","../../../src/components/SRadio/SRadioGroup.tsx"],"names":["jsx"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/cn.ts","../../../src/components/SRadio/SRadio.tsx","../../../src/components/SRadio/SRadioGroup.tsx"],"names":["jsx"],"mappings":"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","file":"SRadioGroup.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\n/**\n * theme.css ์ --text-* ๋ ๊ธฐ๋ณธ Tailwind ํฐํธ์ฌ์ด์ฆ ์ค์ผ์ผ(xs/sm/base...)์ด ์๋\n * ์ซ์ ์ค์ผ์ผ(10~32)์ด๋ผ, ํ์ฅ ์์ด๋ tailwind-merge ๊ฐ ์ด๋ฅผ ํ
์คํธ ์ปฌ๋ฌ ๊ทธ๋ฃน์ผ๋ก\n * ์ค์ธํด text-12 ๊ฐ์ ํด๋์ค๋ฅผ text-(--color-var) ๋ค์์ ์ถฉ๋ ์ ๊ฑฐํด๋ฒ๋ฆฐ๋ค.\n */\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n 'font-size': [{ text: ['10', '11', '12', '13', '14', '16', '18', '20', '24', '28', '32'] }],\n },\n },\n});\n\n/**\n * className ๋ณํฉ ์ ํธ.\n * clsx๋ก ์กฐ๊ฑด๋ถ ํด๋์ค๋ฅผ ํฉ์น๊ณ , tailwind-merge๋ก Tailwind ํด๋์ค ์ถฉ๋์ ํด์ํ๋ค.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { type CSSProperties, type HTMLAttributes } from 'react';\nimport { cn } from '../../lib/cn';\n\n/** ๋ผ๋์ค ๊ฐ ํ์
(sd-radio SRadioValue) */\nexport type SRadioValue = string | number | boolean;\n\nexport interface SRadioProps {\n /** ์ด ๋ผ๋์ค์ ๊ฐ */\n val: SRadioValue;\n /** ๊ทธ๋ฃน์ ํ์ฌ ์ ํ ๊ฐ */\n value?: SRadioValue | null;\n /** ๋ผ๋ฒจ */\n label?: string;\n /** ๋นํ์ฑ */\n disabled?: boolean;\n /** native radio name (form-agnostic ๊ทธ๋ฃนํ) */\n name?: string;\n /** ์ ํ ๋ณ๊ฒฝ (sdUpdate) โ ์ ํ๋ val ์ ๋ฌ */\n onValueChange?: (val: SRadioValue) => void;\n className?: string;\n style?: CSSProperties;\n}\n\n/** SRadio โ sd-radio ํฌํ
. value===val ์ด๋ฉด ์ ํ. ๋จ๋
๋๋ SRadioGroup ์์์ ์ฌ์ฉ. */\nexport function SRadio({\n val,\n value,\n label,\n disabled = false,\n name,\n onValueChange,\n className,\n style,\n}: SRadioProps) {\n // key/name ์์ฑ์ฉ ๋ฌธ์์ด ํํ\n const valStr = String(val);\n const checked = value === val;\n const select = () => {\n if (!disabled && !checked) onValueChange?.(val);\n };\n\n // name ์ด ์์ผ๋ฉด ๋ค์ดํฐ๋ธ <input type=\"radio\"> ๊ฐ ์ค์ ์ํธ์์ฉ ์ปจํธ๋กค์ด ๋๋ค.\n // ์ด๋ label ์๋ role/tabIndex/ํคํธ๋ค๋ฌ๋ฅผ ์ฃผ์ง ์๋๋ค โ ์ํธ์์ฉ ์์ ์ค์ฒฉ\n // (role=\"radio\" ์์ native radio) ๋ฐ radio ์ญํ ์ค๋ณต์ ํผํ๋ค.\n const native = name != null && name !== '';\n\n // native ๋ชจ๋๊ฐ ์๋๋ฉด label ์์ฒด๊ฐ ์ปค์คํ
radio ๋ก ๋์ํ๋ค.\n const labelInteractiveProps: HTMLAttributes<HTMLLabelElement> = native\n ? {}\n : {\n 'role': 'radio',\n 'aria-checked': checked,\n 'tabIndex': disabled ? -1 : 0,\n 'onClick': select,\n 'onKeyDown': e => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n select();\n }\n },\n };\n\n return (\n <label\n {...labelInteractiveProps}\n className={cn(\n 'inline-flex items-center gap-[8px]',\n disabled ? 'cursor-not-allowed' : 'cursor-pointer',\n className,\n )}\n style={style}\n >\n {native && (\n <input\n type=\"radio\"\n name={name}\n value={valStr}\n checked={checked}\n disabled={disabled}\n // ๋ค์ดํฐ๋ธ ๋ผ๋์ค๊ฐ ํฌ์ปค์ค/ํค๋ณด๋/์ ํ์ ๋ด๋นํ๋ค. label ์ด ๊ฐ์ธ๋ฏ๋ก\n // ๋ผ๋ฒจ ํด๋ฆญ๋ ์ด input ์ ํ ๊ธํ๋ฉฐ, onChange ๋ ๊ฐ์ด ์ค์ ๋ก ๋ฐ๋ ๋๋ง ๋ฐ์.\n onChange={() => onValueChange?.(val)}\n className=\"sr-only\"\n />\n )}\n <span\n className={cn(\n 'flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-full border border-solid border-[color:var(--rd-border)] bg-[var(--rd-bg)]',\n !disabled &&\n !checked &&\n 'hover:border-[color:var(--cmp-radio-border-hover)] hover:bg-[var(--cmp-radio-bg-hover)]',\n )}\n style={\n {\n '--rd-bg': disabled ? 'var(--cmp-radio-bg-disabled)' : 'var(--cmp-radio-bg-default)',\n '--rd-border': disabled\n ? 'var(--cmp-radio-border-disabled)'\n : checked\n ? 'var(--cmp-radio-border-active)'\n : 'var(--cmp-radio-border-default)',\n } as CSSProperties\n }\n >\n {checked && (\n <span\n className=\"h-[10px] w-[10px] rounded-full\"\n style={{\n background: disabled\n ? 'var(--cmp-radio-dot-disabled)'\n : 'var(--cmp-radio-dot-default)',\n }}\n />\n )}\n </span>\n {label && (\n <span\n className=\"grid text-[12px] leading-[20px]\"\n style={{\n color: disabled ? 'var(--cmp-radio-label-disabled)' : 'var(--cmp-radio-label-default)',\n }}\n >\n <span aria-hidden className=\"invisible font-medium\" style={{ gridArea: '1 / 1' }}>\n {label}\n </span>\n <span style={{ gridArea: '1 / 1', fontWeight: checked ? 500 : 400 }}>{label}</span>\n </span>\n )}\n </label>\n );\n}\n","'use client';\n\nimport { type CSSProperties } from 'react';\nimport { cn } from '../../lib/cn';\nimport { SRadio, type SRadioValue } from './SRadio';\n\nexport interface SRadioOption {\n /** ์ต์
๊ฐ (sd-radio-group SRadioOption.value) */\n value: SRadioValue;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SRadioGroupProps {\n /** ์ต์
๋ชฉ๋ก */\n options?: SRadioOption[];\n /** ํ์ฌ ์ ํ ๊ฐ */\n value?: SRadioValue | null;\n /** ๋ฐฐ์น ๋ฐฉํฅ */\n direction?: 'vertical' | 'horizontal';\n /** ์ ์ฒด ๋นํ์ฑ */\n disabled?: boolean;\n /** ๋ผ๋์ค name ์์ฑ (form-agnostic ๊ทธ๋ฃนํ) */\n groupName?: string;\n /** ์ ํ ๋ณ๊ฒฝ (sdUpdate) */\n onValueChange?: (val: SRadioValue) => void;\n className?: string;\n style?: CSSProperties;\n}\n\n/** SRadioGroup โ sd-radio-group ํฌํ
. options๋ฅผ SRadio๋ก ๋ ๋. */\nexport function SRadioGroup({\n options = [],\n value,\n direction = 'vertical',\n disabled = false,\n groupName,\n onValueChange,\n className,\n style,\n}: SRadioGroupProps) {\n return (\n <div\n role=\"radiogroup\"\n className={cn(\n 'inline-flex',\n direction === 'vertical'\n ? 'flex-col gap-[var(--cmp-radio-group-gap-vertical)]'\n : 'flex-row gap-[var(--cmp-radio-group-gap-horizontal)]',\n className,\n )}\n style={style}\n >\n {options.map(o => (\n <SRadio\n key={String(o.value)}\n val={o.value}\n value={value}\n label={o.label}\n name={groupName}\n disabled={disabled || o.disabled}\n onValueChange={onValueChange}\n />\n ))}\n </div>\n );\n}\n"]}
|
|
@@ -3150,7 +3150,7 @@ var STooltip = react.forwardRef(function STooltip2({
|
|
|
3150
3150
|
if (disabled || body == null) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: triggerNode });
|
|
3151
3151
|
const isHover = trigger === "hover";
|
|
3152
3152
|
const contentClass = cn(
|
|
3153
|
-
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]
|
|
3153
|
+
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
|
|
3154
3154
|
FLOATING_SLIDE_ANIM,
|
|
3155
3155
|
className
|
|
3156
3156
|
);
|
|
@@ -3752,7 +3752,7 @@ function ItemList({
|
|
|
3752
3752
|
isDepth1 ? "border-t border-solid border-[color:var(--cmp-listItem-depth1-border-color)] bg-[var(--cmp-listItem-depth1-bg-default)] font-bold" : "bg-[var(--cmp-listItem-depth2-middle-bg)] font-medium",
|
|
3753
3753
|
// ํ์๊ฐ ์ ๋ถ ๋นํ์ฑ์ด๋ฉด(select.config ์์ bubble-up) ์ด๋ฏธ ๊ทธ๋ฃน๋ ๋นํ์ฑ ์ฒ๋ฆฌ:
|
|
3754
3754
|
// ํ
์คํธ๋ ํ์(#888), depth1 ๊ทธ๋ฃน์ ํ๋ ๋ฐฐ๊ฒฝ ๋์ ํ์(#EEE)์ผ๋ก (depth2 ๋ #F6F6F6 ์ ์ง)
|
|
3755
|
-
o.disabled && "text-[color:var(--cmp-listItem-content-disabled)]",
|
|
3755
|
+
o.disabled && "cursor-not-allowed text-[color:var(--cmp-listItem-content-disabled)]",
|
|
3756
3756
|
o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
|
|
3757
3757
|
),
|
|
3758
3758
|
style: { paddingLeft: padLeft },
|
|
@@ -3767,10 +3767,14 @@ function ItemList({
|
|
|
3767
3767
|
{
|
|
3768
3768
|
value: o.value,
|
|
3769
3769
|
disabled: o.disabled,
|
|
3770
|
+
accessibleWhenDisabled: true,
|
|
3770
3771
|
className: cn(
|
|
3771
3772
|
itemBase,
|
|
3772
3773
|
isSelected && !multi && "font-bold text-[color:var(--cmp-listItem-content-selected)]",
|
|
3773
|
-
|
|
3774
|
+
// Ariakit์ disabled ํญ๋ชฉ๋ hover ์ active(data-active-item) ์ฒ๋ฆฌํ๋ฏ๋ก,
|
|
3775
|
+
// ๋นํ์ฑ ํญ๋ชฉ์๋ hover ํ์ด๋ผ์ดํธ๋ฅผ ์ ์ฉํ์ง ์์ ํ์ ๋นํ์ฑ ์คํ์ผ์ ์ ์งํ๋ค.
|
|
3776
|
+
// (์๋ณธ Stencil์ `--focused...:not(--disabled)` ๊ท์น๊ณผ ๋์ผํ ์๋)
|
|
3777
|
+
!o.disabled && activeClass
|
|
3774
3778
|
),
|
|
3775
3779
|
style: { paddingTop: 4, paddingBottom: 4, paddingRight: 12, paddingLeft: padLeft },
|
|
3776
3780
|
render: useSearch ? /* @__PURE__ */ jsxRuntime.jsx(Ariakit__namespace.ComboboxItem, {}) : void 0,
|
|
@@ -3783,7 +3787,7 @@ function ItemList({
|
|
|
3783
3787
|
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
|
|
3784
3788
|
o.disabled ? (
|
|
3785
3789
|
// ๋นํ์ฑ: ํ์ ์ฑ์(#E1E1E1) + ํ์ ํ
๋๋ฆฌ(#CCCCCC)
|
|
3786
|
-
"border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
3790
|
+
"cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
3787
3791
|
) : cn(
|
|
3788
3792
|
"group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
|
|
3789
3793
|
isSelected ? "border-[color:var(--cmp-checkbox-checked-bg-default)] bg-[var(--cmp-checkbox-checked-bg-default)] group-data-[active-item]:bg-transparent" : "border-[color:var(--cmp-checkbox-unchecked-border-default)] bg-transparent"
|