@simplysm/solid 13.0.78 → 13.0.81

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.
Files changed (206) hide show
  1. package/README.md +23 -217
  2. package/dist/components/data/Pagination.js +2 -2
  3. package/dist/components/data/Pagination.js.map +2 -2
  4. package/dist/components/data/Table.js +2 -2
  5. package/dist/components/data/Table.js.map +2 -2
  6. package/dist/components/data/calendar/Calendar.js +2 -2
  7. package/dist/components/data/calendar/Calendar.js.map +2 -2
  8. package/dist/components/data/kanban/Kanban.js +3 -3
  9. package/dist/components/data/kanban/Kanban.js.map +2 -2
  10. package/dist/components/data/list/ListItem.js +1 -1
  11. package/dist/components/data/list/ListItem.js.map +1 -1
  12. package/dist/components/data/list/ListItem.styles.js +1 -1
  13. package/dist/components/data/list/ListItem.styles.js.map +1 -1
  14. package/dist/components/data/sheet/DataSheet.js +16 -16
  15. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  16. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  17. package/dist/components/data/sheet/DataSheet.styles.js +2 -2
  18. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  19. package/dist/components/data/sheet/DataSheetConfigDialog.js +5 -5
  20. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
  21. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.d.ts → createDataSheetExpansion.d.ts} +4 -4
  22. package/dist/components/data/sheet/hooks/createDataSheetExpansion.d.ts.map +1 -0
  23. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.js → createDataSheetExpansion.js} +3 -3
  24. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.js.map → createDataSheetExpansion.js.map} +2 -2
  25. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.d.ts → createDataSheetFixedColumns.d.ts} +3 -3
  26. package/dist/components/data/sheet/hooks/createDataSheetFixedColumns.d.ts.map +1 -0
  27. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.js → createDataSheetFixedColumns.js} +3 -3
  28. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.js.map → createDataSheetFixedColumns.js.map} +2 -2
  29. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.d.ts → createDataSheetHeaderCell.d.ts} +3 -3
  30. package/dist/components/data/sheet/hooks/createDataSheetHeaderCell.d.ts.map +1 -0
  31. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.js → createDataSheetHeaderCell.js} +3 -3
  32. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.js.map → createDataSheetHeaderCell.js.map} +3 -3
  33. package/dist/components/data/sheet/hooks/{useDataSheetPaging.d.ts → createDataSheetPaging.d.ts} +4 -4
  34. package/dist/components/data/sheet/hooks/createDataSheetPaging.d.ts.map +1 -0
  35. package/dist/components/data/sheet/hooks/{useDataSheetPaging.js → createDataSheetPaging.js} +3 -3
  36. package/dist/components/data/sheet/hooks/{useDataSheetPaging.js.map → createDataSheetPaging.js.map} +2 -2
  37. package/dist/components/data/sheet/hooks/{useDataSheetReorder.d.ts → createDataSheetReorder.d.ts} +3 -3
  38. package/dist/components/data/sheet/hooks/createDataSheetReorder.d.ts.map +1 -0
  39. package/dist/components/data/sheet/hooks/{useDataSheetReorder.js → createDataSheetReorder.js} +3 -3
  40. package/dist/components/data/sheet/hooks/{useDataSheetReorder.js.map → createDataSheetReorder.js.map} +2 -2
  41. package/dist/components/data/sheet/hooks/{useDataSheetSelection.d.ts → createDataSheetSelection.d.ts} +4 -4
  42. package/dist/components/data/sheet/hooks/createDataSheetSelection.d.ts.map +1 -0
  43. package/dist/components/data/sheet/hooks/{useDataSheetSelection.js → createDataSheetSelection.js} +3 -3
  44. package/dist/components/data/sheet/hooks/{useDataSheetSelection.js.map → createDataSheetSelection.js.map} +2 -2
  45. package/dist/components/data/sheet/hooks/{useDataSheetSorting.d.ts → createDataSheetSorting.d.ts} +4 -4
  46. package/dist/components/data/sheet/hooks/createDataSheetSorting.d.ts.map +1 -0
  47. package/dist/components/data/sheet/hooks/{useDataSheetSorting.js → createDataSheetSorting.js} +3 -3
  48. package/dist/components/data/sheet/hooks/{useDataSheetSorting.js.map → createDataSheetSorting.js.map} +2 -2
  49. package/dist/components/disclosure/Dialog.d.ts +2 -2
  50. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  51. package/dist/components/disclosure/Dialog.js +4 -4
  52. package/dist/components/disclosure/Dialog.js.map +2 -2
  53. package/dist/components/disclosure/Tabs.js +3 -3
  54. package/dist/components/disclosure/Tabs.js.map +2 -2
  55. package/dist/components/features/crud-sheet/CrudSheet.js +3 -3
  56. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  57. package/dist/components/features/data-select-button/DataSelectButton.d.ts +23 -9
  58. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  59. package/dist/components/features/data-select-button/DataSelectButton.js +1 -1
  60. package/dist/components/features/data-select-button/DataSelectButton.js.map +1 -1
  61. package/dist/components/features/permission-table/PermissionTable.js +2 -2
  62. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  63. package/dist/components/features/shared-data/SharedDataSelect.d.ts +23 -9
  64. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  65. package/dist/components/features/shared-data/SharedDataSelect.js.map +1 -1
  66. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +25 -10
  67. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  68. package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
  69. package/dist/components/features/shared-data/SharedDataSelectList.js +1 -1
  70. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  71. package/dist/components/feedback/Progress.d.ts +1 -1
  72. package/dist/components/feedback/Progress.d.ts.map +1 -1
  73. package/dist/components/feedback/Progress.js +3 -3
  74. package/dist/components/feedback/Progress.js.map +2 -2
  75. package/dist/components/form-control/Button.js +2 -2
  76. package/dist/components/form-control/Button.js.map +2 -2
  77. package/dist/components/form-control/DropdownTrigger.styles.js +2 -2
  78. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  79. package/dist/components/form-control/ThemeToggle.js +4 -4
  80. package/dist/components/form-control/ThemeToggle.js.map +2 -2
  81. package/dist/components/form-control/checkbox/Checkbox.d.ts +3 -3
  82. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  83. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  84. package/dist/components/form-control/checkbox/Checkbox.styles.js +3 -3
  85. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  86. package/dist/components/form-control/checkbox/CheckboxGroup.js +2 -2
  87. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
  88. package/dist/components/form-control/checkbox/Radio.d.ts +3 -3
  89. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  90. package/dist/components/form-control/checkbox/RadioGroup.js +2 -2
  91. package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
  92. package/dist/components/form-control/checkbox/SelectableBase.d.ts +3 -3
  93. package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -1
  94. package/dist/components/form-control/checkbox/SelectableBase.js +10 -10
  95. package/dist/components/form-control/checkbox/SelectableBase.js.map +2 -2
  96. package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
  97. package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
  98. package/dist/components/form-control/date-range-picker/DateRangePicker.js +1 -1
  99. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  100. package/dist/components/form-control/editor/EditorToolbar.js +1 -1
  101. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  102. package/dist/components/form-control/editor/RichTextEditor.js +2 -2
  103. package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
  104. package/dist/components/form-control/field/Field.styles.js +7 -7
  105. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  106. package/dist/components/form-control/field/NumberInput.js +1 -1
  107. package/dist/components/form-control/field/NumberInput.js.map +1 -1
  108. package/dist/components/form-control/field/TextInput.js +1 -1
  109. package/dist/components/form-control/field/TextInput.js.map +1 -1
  110. package/dist/components/form-control/field/Textarea.js +1 -1
  111. package/dist/components/form-control/field/Textarea.js.map +1 -1
  112. package/dist/components/form-control/numpad/Numpad.d.ts +2 -2
  113. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  114. package/dist/components/form-control/numpad/Numpad.js +4 -4
  115. package/dist/components/form-control/numpad/Numpad.js.map +2 -2
  116. package/dist/components/form-control/select/Select.js +1 -1
  117. package/dist/components/form-control/select/Select.js.map +2 -2
  118. package/dist/components/form-control/state-preset/StatePreset.js +8 -8
  119. package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
  120. package/dist/components/layout/topbar/Topbar.js +3 -3
  121. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  122. package/dist/providers/PwaUpdateProvider.d.ts.map +1 -1
  123. package/dist/providers/PwaUpdateProvider.js +11 -4
  124. package/dist/providers/PwaUpdateProvider.js.map +2 -2
  125. package/dist/styles/control.styles.d.ts +3 -3
  126. package/dist/styles/control.styles.d.ts.map +1 -1
  127. package/dist/styles/control.styles.js +2 -2
  128. package/dist/styles/control.styles.js.map +1 -1
  129. package/docs/data.md +204 -0
  130. package/docs/disclosure.md +139 -0
  131. package/docs/display.md +125 -0
  132. package/docs/features.md +282 -0
  133. package/docs/feedback.md +136 -0
  134. package/docs/form-controls.md +520 -0
  135. package/docs/helpers.md +172 -0
  136. package/docs/hooks.md +146 -0
  137. package/docs/layout.md +94 -0
  138. package/docs/providers.md +179 -0
  139. package/package.json +19 -18
  140. package/src/components/data/Pagination.tsx +2 -2
  141. package/src/components/data/Table.tsx +2 -2
  142. package/src/components/data/calendar/Calendar.tsx +2 -2
  143. package/src/components/data/kanban/Kanban.tsx +2 -2
  144. package/src/components/data/list/ListItem.styles.ts +1 -1
  145. package/src/components/data/list/ListItem.tsx +1 -1
  146. package/src/components/data/sheet/DataSheet.styles.ts +2 -2
  147. package/src/components/data/sheet/DataSheet.tsx +16 -16
  148. package/src/components/data/sheet/DataSheetConfigDialog.tsx +5 -5
  149. package/src/components/data/sheet/hooks/{useDataSheetExpansion.ts → createDataSheetExpansion.ts} +5 -5
  150. package/src/components/data/sheet/hooks/{useDataSheetFixedColumns.ts → createDataSheetFixedColumns.ts} +3 -3
  151. package/src/components/data/sheet/hooks/{useDataSheetHeaderCell.tsx → createDataSheetHeaderCell.tsx} +2 -2
  152. package/src/components/data/sheet/hooks/{useDataSheetPaging.ts → createDataSheetPaging.ts} +5 -5
  153. package/src/components/data/sheet/hooks/{useDataSheetReorder.ts → createDataSheetReorder.ts} +3 -3
  154. package/src/components/data/sheet/hooks/{useDataSheetSelection.ts → createDataSheetSelection.ts} +5 -5
  155. package/src/components/data/sheet/hooks/{useDataSheetSorting.ts → createDataSheetSorting.ts} +5 -5
  156. package/src/components/disclosure/Dialog.tsx +5 -5
  157. package/src/components/disclosure/Tabs.tsx +3 -3
  158. package/src/components/features/crud-sheet/CrudSheet.tsx +3 -3
  159. package/src/components/features/data-select-button/DataSelectButton.tsx +42 -11
  160. package/src/components/features/permission-table/PermissionTable.tsx +2 -2
  161. package/src/components/features/shared-data/SharedDataSelect.tsx +45 -14
  162. package/src/components/features/shared-data/SharedDataSelectButton.tsx +38 -11
  163. package/src/components/features/shared-data/SharedDataSelectList.tsx +1 -1
  164. package/src/components/feedback/Progress.tsx +4 -4
  165. package/src/components/form-control/Button.tsx +2 -2
  166. package/src/components/form-control/DropdownTrigger.styles.ts +2 -2
  167. package/src/components/form-control/ThemeToggle.tsx +4 -4
  168. package/src/components/form-control/checkbox/Checkbox.styles.ts +3 -3
  169. package/src/components/form-control/checkbox/Checkbox.tsx +3 -3
  170. package/src/components/form-control/checkbox/CheckboxGroup.tsx +2 -2
  171. package/src/components/form-control/checkbox/Radio.tsx +3 -3
  172. package/src/components/form-control/checkbox/RadioGroup.tsx +2 -2
  173. package/src/components/form-control/checkbox/SelectableBase.tsx +15 -15
  174. package/src/components/form-control/color-picker/ColorPicker.tsx +2 -2
  175. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +1 -1
  176. package/src/components/form-control/editor/EditorToolbar.tsx +1 -1
  177. package/src/components/form-control/editor/RichTextEditor.tsx +2 -2
  178. package/src/components/form-control/field/Field.styles.ts +7 -7
  179. package/src/components/form-control/field/NumberInput.tsx +1 -1
  180. package/src/components/form-control/field/TextInput.tsx +1 -1
  181. package/src/components/form-control/field/Textarea.tsx +1 -1
  182. package/src/components/form-control/numpad/Numpad.tsx +6 -6
  183. package/src/components/form-control/select/Select.tsx +1 -1
  184. package/src/components/form-control/state-preset/StatePreset.tsx +9 -9
  185. package/src/components/layout/topbar/Topbar.tsx +3 -3
  186. package/src/providers/PwaUpdateProvider.tsx +12 -5
  187. package/src/styles/control.styles.ts +3 -3
  188. package/tests/components/data/sheet/hooks/{useDataSheetExpansion.spec.ts → createDataSheetExpansion.spec.ts} +16 -16
  189. package/tests/components/data/sheet/hooks/{useDataSheetFixedColumns.spec.ts → createDataSheetFixedColumns.spec.ts} +27 -27
  190. package/tests/components/data/sheet/hooks/{useDataSheetPaging.spec.ts → createDataSheetPaging.spec.ts} +16 -16
  191. package/tests/components/data/sheet/hooks/{useDataSheetReorder.spec.ts → createDataSheetReorder.spec.ts} +14 -14
  192. package/tests/components/data/sheet/hooks/{useDataSheetSelection.spec.ts → createDataSheetSelection.spec.ts} +26 -26
  193. package/tests/components/data/sheet/hooks/{useDataSheetSorting.spec.ts → createDataSheetSorting.spec.ts} +13 -13
  194. package/tests/components/disclosure/Dialog.spec.tsx +2 -2
  195. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +55 -6
  196. package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +40 -0
  197. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +8 -8
  198. package/tests/components/form-control/checkbox/Radio.spec.tsx +9 -9
  199. package/tests/components/form-control/numpad/Numpad.spec.tsx +10 -10
  200. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +0 -1
  201. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +0 -1
  202. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +0 -1
  203. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +0 -1
  204. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +0 -1
  205. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +0 -1
  206. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +0 -1
@@ -2,26 +2,19 @@ import { type Component, type JSX, splitProps } from "solid-js";
2
2
  import { type SharedDataAccessor } from "../../../providers/shared-data/SharedDataProvider";
3
3
  import {
4
4
  DataSelectButton,
5
- type DataSelectButtonProps,
6
5
  type SelectDialogBaseProps,
7
6
  type DialogPropsField,
8
7
  } from "../data-select-button/DataSelectButton";
9
8
  import { type DialogShowOptions } from "../../disclosure/Dialog";
10
9
  import { type ComponentSize } from "../../../styles/control.styles";
11
10
 
12
- /** SharedDataSelectButton Props */
13
- export type SharedDataSelectButtonProps<
11
+ /** Common props shared between single and multiple modes */
12
+ interface SharedDataSelectButtonCommonProps<
14
13
  TItem,
15
14
  TDialogProps extends SelectDialogBaseProps = SelectDialogBaseProps,
16
- > = {
15
+ > {
17
16
  /** Shared data accessor */
18
17
  data: SharedDataAccessor<TItem>;
19
- /** Currently selected key(s) (single or multiple) */
20
- value?: DataSelectButtonProps<TItem>["value"];
21
- /** Value change callback */
22
- onValueChange?: DataSelectButtonProps<TItem>["onValueChange"];
23
- /** Multiple selection mode */
24
- multiple?: boolean;
25
18
  /** Required input */
26
19
  required?: boolean;
27
20
  /** Disabled */
@@ -36,7 +29,41 @@ export type SharedDataSelectButtonProps<
36
29
  dialogOptions?: DialogShowOptions;
37
30
  /** Item rendering function */
38
31
  children: (item: TItem) => JSX.Element;
39
- } & DialogPropsField<TDialogProps>;
32
+ }
33
+
34
+ /** Single select props */
35
+ interface SharedDataSelectButtonSingleProps<
36
+ TItem,
37
+ TDialogProps extends SelectDialogBaseProps = SelectDialogBaseProps,
38
+ > extends SharedDataSelectButtonCommonProps<TItem, TDialogProps> {
39
+ /** Single select mode */
40
+ multiple?: false;
41
+ /** Currently selected key */
42
+ value?: string | number;
43
+ /** Value change callback */
44
+ onValueChange?: (value: string | number | undefined) => void;
45
+ }
46
+
47
+ /** Multiple select props */
48
+ interface SharedDataSelectButtonMultipleProps<
49
+ TItem,
50
+ TDialogProps extends SelectDialogBaseProps = SelectDialogBaseProps,
51
+ > extends SharedDataSelectButtonCommonProps<TItem, TDialogProps> {
52
+ /** Multiple select mode */
53
+ multiple: true;
54
+ /** Currently selected keys */
55
+ value?: (string | number)[];
56
+ /** Value change callback */
57
+ onValueChange?: (value: (string | number)[]) => void;
58
+ }
59
+
60
+ /** SharedDataSelectButton Props */
61
+ export type SharedDataSelectButtonProps<
62
+ TItem,
63
+ TDialogProps extends SelectDialogBaseProps = SelectDialogBaseProps,
64
+ > =
65
+ | (SharedDataSelectButtonSingleProps<TItem, TDialogProps> & DialogPropsField<TDialogProps>)
66
+ | (SharedDataSelectButtonMultipleProps<TItem, TDialogProps> & DialogPropsField<TDialogProps>);
40
67
 
41
68
  export function SharedDataSelectButton<
42
69
  TItem,
@@ -207,7 +207,7 @@ const SharedDataSelectListInner = (<TItem,>(
207
207
  <div
208
208
  {...rest}
209
209
  data-shared-data-select-list
210
- class={twMerge(clsx("flex-col", gap.default), local.class)}
210
+ class={twMerge(clsx("flex-col", gap.md), local.class)}
211
211
  style={local.style}
212
212
  >
213
213
  {/* Header */}
@@ -8,7 +8,7 @@ import { type SemanticTheme, themeTokens } from "../../styles/theme.styles";
8
8
  export type ProgressTheme = SemanticTheme;
9
9
 
10
10
  export interface ProgressProps extends JSX.HTMLAttributes<HTMLDivElement> {
11
- /** Progress value (range 0-1, 0 = 0%, 1 = 100%) */
11
+ /** Progress value (range 0-100, 0 = 0%, 100 = 100%) */
12
12
  value: number;
13
13
  theme?: ProgressTheme;
14
14
  size?: ComponentSize;
@@ -16,7 +16,7 @@ export interface ProgressProps extends JSX.HTMLAttributes<HTMLDivElement> {
16
16
  }
17
17
 
18
18
  const sizeClasses: Record<ComponentSize, string> = {
19
- default: pad.default,
19
+ md: pad.md,
20
20
  xs: pad.xs,
21
21
  sm: pad.sm,
22
22
  lg: pad.lg,
@@ -31,7 +31,7 @@ export const Progress: ParentComponent<ProgressProps> = (props) => {
31
31
  const [local, rest] = splitProps(props, ["children", "class", "theme", "size", "value", "inset"]);
32
32
 
33
33
  const getClassName = () => {
34
- const size = local.size ?? "default";
34
+ const size = local.size ?? "md";
35
35
  return twMerge(
36
36
  clsx("relative block w-full overflow-hidden rounded", bg.subtle, "border", border.default),
37
37
  sizeClasses[size],
@@ -45,7 +45,7 @@ export const Progress: ParentComponent<ProgressProps> = (props) => {
45
45
  return clsx("absolute left-0 top-0 h-full", "z-[1]", "transition-all", barThemeClasses[theme]);
46
46
  };
47
47
 
48
- const getPercentText = () => (Math.max(0, Math.min(1, local.value)) * 100).toFixed(2) + "%";
48
+ const getPercentText = () => Math.max(0, Math.min(100, local.value)).toFixed(2) + "%";
49
49
 
50
50
  return (
51
51
  <div data-progress class={getClassName()} {...rest}>
@@ -24,7 +24,7 @@ const themeClasses = Object.fromEntries(
24
24
  ) as Record<ButtonTheme, Record<ButtonVariant, string>>;
25
25
 
26
26
  const sizeClasses: Record<ButtonSize, string> = {
27
- default: clsx("min-w-8", pad.default),
27
+ md: clsx("min-w-8", pad.md),
28
28
  xs: clsx("min-w-4", pad.xs),
29
29
  sm: clsx("min-w-6", pad.sm),
30
30
  lg: clsx("min-w-9", pad.lg),
@@ -57,7 +57,7 @@ export const Button: ParentComponent<ButtonProps> = (props) => {
57
57
  return twMerge(
58
58
  "inline-flex items-center font-bold justify-center text-center cursor-pointer transition rounded focus:outline-none focus-visible:ring-2 border border-transparent",
59
59
  themeClasses[theme][variant],
60
- sizeClasses[local.size ?? "default"],
60
+ sizeClasses[local.size ?? "md"],
61
61
  local.inset && "rounded-none border-none",
62
62
  local.disabled && state.disabled,
63
63
  local.class,
@@ -29,7 +29,7 @@ export const triggerInsetClass = clsx(
29
29
  );
30
30
 
31
31
  export const triggerSizeClasses: Record<ComponentSize, string> = {
32
- default: clsx(gap.default, pad.default),
32
+ md: clsx(gap.md, pad.md),
33
33
  xs: clsx(gap.xs, pad.xs),
34
34
  sm: clsx(gap.sm, pad.sm),
35
35
  lg: clsx(gap.lg, pad.lg),
@@ -47,7 +47,7 @@ export function getTriggerClass(options: {
47
47
  }): string {
48
48
  return twMerge(
49
49
  triggerBaseClass,
50
- triggerSizeClasses[options.size ?? "default"],
50
+ triggerSizeClasses[options.size ?? "md"],
51
51
  options.disabled && triggerDisabledClass,
52
52
  options.inset && triggerInsetClass,
53
53
  options.class,
@@ -8,7 +8,7 @@ import { useI18n } from "../../providers/i18n/I18nProvider";
8
8
  import { type ComponentSize } from "../../styles/control.styles";
9
9
 
10
10
  const sizeClasses: Record<ComponentSize, string> = {
11
- default: "p-1.5",
11
+ md: "p-1.5",
12
12
  xs: "p-0.5",
13
13
  sm: "p-1",
14
14
  lg: "p-2",
@@ -16,7 +16,7 @@ const sizeClasses: Record<ComponentSize, string> = {
16
16
  };
17
17
 
18
18
  const iconSizes: Record<ComponentSize, string> = {
19
- default: "1.25em",
19
+ md: "1.25em",
20
20
  xs: "0.75em",
21
21
  sm: "1em",
22
22
  lg: "1.5em",
@@ -63,9 +63,9 @@ export const ThemeToggle: Component<ThemeToggleProps> = (props) => {
63
63
 
64
64
  const modeLabel = () => i18n.t(modeLabelKeys[mode()]);
65
65
 
66
- const getClassName = () => twMerge(sizeClasses[local.size ?? "default"], local.class);
66
+ const getClassName = () => twMerge(sizeClasses[local.size ?? "md"], local.class);
67
67
 
68
- const iconSize = () => iconSizes[local.size ?? "default"];
68
+ const iconSize = () => iconSizes[local.size ?? "md"];
69
69
 
70
70
  return (
71
71
  <Button
@@ -31,7 +31,7 @@ export const checkedClass = clsx("border-primary-500 bg-primary-500", "text-whit
31
31
 
32
32
  // Size-specific styles
33
33
  export const checkboxSizeClasses: Record<CheckboxSize, string> = {
34
- default: clsx("h-field", pad.default),
34
+ md: clsx("h-field", pad.md),
35
35
  xs: clsx("h-field-xs", pad.xs),
36
36
  sm: clsx("h-field-sm", pad.sm),
37
37
  lg: clsx("h-field-lg", pad.lg),
@@ -49,7 +49,7 @@ export const checkboxInsetClass = clsx(
49
49
 
50
50
  // Inset size-specific heights (excluding 2px border)
51
51
  export const checkboxInsetSizeHeightClasses: Record<CheckboxSize, string> = {
52
- default: clsx`h-field-inset`,
52
+ md: clsx`h-field-inset`,
53
53
  xs: clsx`h-field-inset-xs`,
54
54
  sm: clsx`h-field-inset-sm`,
55
55
  lg: clsx`h-field-inset-lg`,
@@ -57,7 +57,7 @@ export const checkboxInsetSizeHeightClasses: Record<CheckboxSize, string> = {
57
57
  };
58
58
 
59
59
  // Inline styles
60
- export const checkboxInlineClass = clsx("!h-auto", "!p-0", gap.default);
60
+ export const checkboxInlineClass = clsx("!h-auto", "!p-0", gap.md);
61
61
 
62
62
  // Disabled styles
63
63
  export const checkboxDisabledClass = clsx(state.disabled);
@@ -5,14 +5,14 @@ import { Icon } from "../../display/Icon";
5
5
  import { SelectableBase } from "./SelectableBase";
6
6
 
7
7
  export interface CheckboxProps {
8
- value?: boolean;
9
- onValueChange?: (value: boolean) => void;
8
+ checked?: boolean;
9
+ onCheckedChange?: (checked: boolean) => void;
10
10
  disabled?: boolean;
11
11
  size?: CheckboxSize;
12
12
  inset?: boolean;
13
13
  inline?: boolean;
14
14
  required?: boolean;
15
- validate?: (value: boolean) => string | undefined;
15
+ validate?: (checked: boolean) => string | undefined;
16
16
  lazyValidation?: boolean;
17
17
  class?: string;
18
18
  style?: JSX.CSSProperties;
@@ -86,8 +86,8 @@ function CheckboxGroupItem<TValue = unknown>(props: {
86
86
 
87
87
  return (
88
88
  <Checkbox
89
- value={isSelected()}
90
- onValueChange={handleChange}
89
+ checked={isSelected()}
90
+ onCheckedChange={handleChange}
91
91
  disabled={props.disabled ?? ctx.disabled()}
92
92
  size={ctx.size()}
93
93
  inline={ctx.inline()}
@@ -3,14 +3,14 @@ import type { CheckboxSize } from "./Checkbox.styles";
3
3
  import { SelectableBase } from "./SelectableBase";
4
4
 
5
5
  export interface RadioProps {
6
- value?: boolean;
7
- onValueChange?: (value: boolean) => void;
6
+ checked?: boolean;
7
+ onCheckedChange?: (checked: boolean) => void;
8
8
  disabled?: boolean;
9
9
  size?: CheckboxSize;
10
10
  inset?: boolean;
11
11
  inline?: boolean;
12
12
  required?: boolean;
13
- validate?: (value: boolean) => string | undefined;
13
+ validate?: (checked: boolean) => string | undefined;
14
14
  lazyValidation?: boolean;
15
15
  class?: string;
16
16
  style?: JSX.CSSProperties;
@@ -83,8 +83,8 @@ function RadioGroupItem<TValue = unknown>(props: {
83
83
 
84
84
  return (
85
85
  <Radio
86
- value={isSelected()}
87
- onValueChange={handleChange}
86
+ checked={isSelected()}
87
+ onCheckedChange={handleChange}
88
88
  disabled={props.disabled ?? ctx.disabled()}
89
89
  size={ctx.size()}
90
90
  inline={ctx.inline()}
@@ -19,14 +19,14 @@ import { Invalid } from "../Invalid";
19
19
  void ripple;
20
20
 
21
21
  export interface SelectableBaseProps {
22
- value?: boolean;
23
- onValueChange?: (value: boolean) => void;
22
+ checked?: boolean;
23
+ onCheckedChange?: (checked: boolean) => void;
24
24
  disabled?: boolean;
25
25
  size?: CheckboxSize;
26
26
  inset?: boolean;
27
27
  inline?: boolean;
28
28
  required?: boolean;
29
- validate?: (value: boolean) => string | undefined;
29
+ validate?: (checked: boolean) => string | undefined;
30
30
  lazyValidation?: boolean;
31
31
  class?: string;
32
32
  style?: JSX.CSSProperties;
@@ -42,8 +42,8 @@ export interface SelectableBaseConfig {
42
42
 
43
43
  export const SelectableBase: ParentComponent<SelectableBaseProps & { config: SelectableBaseConfig }> = (props) => {
44
44
  const [local, rest] = splitProps(props, [
45
- "value",
46
- "onValueChange",
45
+ "checked",
46
+ "onCheckedChange",
47
47
  "disabled",
48
48
  "size",
49
49
  "inset",
@@ -59,14 +59,14 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
59
59
 
60
60
  const i18n = useI18n();
61
61
 
62
- const [value, setValue] = createControllableSignal({
63
- value: () => local.value ?? false,
64
- onChange: () => local.onValueChange,
62
+ const [checked, setChecked] = createControllableSignal({
63
+ value: () => local.checked ?? false,
64
+ onChange: () => local.onCheckedChange,
65
65
  });
66
66
 
67
67
  const handleClick = () => {
68
68
  if (local.disabled) return;
69
- setValue((v) => local.config.onToggle(v));
69
+ setChecked((v) => local.config.onToggle(v));
70
70
  };
71
71
 
72
72
  const handleKeyDown = (e: KeyboardEvent) => {
@@ -79,19 +79,19 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
79
79
  const getWrapperClass = () =>
80
80
  twMerge(
81
81
  checkboxBaseClass,
82
- checkboxSizeClasses[local.size ?? "default"],
82
+ checkboxSizeClasses[local.size ?? "md"],
83
83
  local.inset && checkboxInsetClass,
84
- local.inset && checkboxInsetSizeHeightClasses[local.size ?? "default"],
84
+ local.inset && checkboxInsetSizeHeightClasses[local.size ?? "md"],
85
85
  local.inline && checkboxInlineClass,
86
86
  local.disabled && checkboxDisabledClass,
87
87
  local.class,
88
88
  );
89
89
 
90
90
  const getIndicatorClass = () =>
91
- twMerge(indicatorBaseClass, local.config.indicatorShape, value() && checkedClass);
91
+ twMerge(indicatorBaseClass, local.config.indicatorShape, checked() && checkedClass);
92
92
 
93
93
  const errorMsg = createMemo(() => {
94
- const v = local.value ?? false;
94
+ const v = local.checked ?? false;
95
95
  if (local.required && !v) return i18n.t("validation.requiredSelection");
96
96
  return local.validate?.(v);
97
97
  });
@@ -102,7 +102,7 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
102
102
  {...rest}
103
103
  use:ripple={!local.disabled}
104
104
  role={local.config.role}
105
- aria-checked={value()}
105
+ aria-checked={checked()}
106
106
  tabIndex={local.disabled ? -1 : 0}
107
107
  class={getWrapperClass()}
108
108
  style={local.style}
@@ -110,7 +110,7 @@ export const SelectableBase: ParentComponent<SelectableBaseProps & { config: Sel
110
110
  onKeyDown={handleKeyDown}
111
111
  >
112
112
  <div class={getIndicatorClass()}>
113
- <Show when={value()}>
113
+ <Show when={checked()}>
114
114
  {local.config.indicatorContent}
115
115
  </Show>
116
116
  </div>
@@ -8,7 +8,7 @@ import { useI18n } from "../../../providers/i18n/I18nProvider";
8
8
 
9
9
  // Size-specific styles
10
10
  const sizeClasses: Record<ComponentSize, string> = {
11
- default: clsx`size-field`,
11
+ md: clsx`size-field`,
12
12
  xs: "size-field-xs",
13
13
  sm: "size-field-sm",
14
14
  lg: "size-field-lg",
@@ -88,7 +88,7 @@ export const ColorPicker: Component<ColorPickerProps> = (props) => {
88
88
  twMerge(
89
89
 
90
90
  "size-field rounded border border-black/10 dark:border-white/10 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-none [&::-webkit-color-swatch]:rounded-none [&::-moz-color-swatch]:border-none [&::-moz-color-swatch]:rounded-none",
91
- sizeClasses[local.size ?? "default"],
91
+ sizeClasses[local.size ?? "md"],
92
92
 
93
93
  local.disabled && "cursor-default relative before:absolute before:bottom-0 before:left-0 before:right-0 before:top-0 before:bg-[linear-gradient(45deg,transparent_40%,rgba(0,0,0,0.4)_40%,rgba(0,0,0,0.4)_60%,transparent_60%)]",
94
94
  local.class,
@@ -154,7 +154,7 @@ export const DateRangePicker: Component<DateRangePickerProps> = (props) => {
154
154
  };
155
155
 
156
156
  // Wrapper CSS class
157
- const getWrapperClass = () => twMerge(clsx("inline-flex items-center", gap.default), local.class);
157
+ const getWrapperClass = () => twMerge(clsx("inline-flex items-center", gap.md), local.class);
158
158
 
159
159
  return (
160
160
  <div {...rest} data-date-range-picker class={getWrapperClass()} style={local.style}>
@@ -177,7 +177,7 @@ export const EditorToolbar: Component<EditorToolbarProps> = (props) => {
177
177
  };
178
178
 
179
179
  return (
180
- <div class={twMerge(clsx("flex flex-wrap items-center", gap.sm, "border-b", border.default, pad.default), props.class)}>
180
+ <div class={twMerge(clsx("flex flex-wrap items-center", gap.sm, "border-b", border.default, pad.md), props.class)}>
181
181
  {renderToolbarItems(toolbarItemsBefore)}
182
182
 
183
183
  {/* Color pickers */}
@@ -50,7 +50,7 @@ export interface RichTextEditorProps {
50
50
 
51
51
  // Editor content size-based style
52
52
  const editorContentSizeClasses: Record<FieldSize, string> = {
53
- default: clsx(pad.xl, "min-h-32"),
53
+ md: clsx(pad.xl, "min-h-32"),
54
54
  xs: clsx(pad.xs, "min-h-12"),
55
55
  sm: clsx(pad.sm, "min-h-24"),
56
56
  lg: clsx(pad.lg, "min-h-48"),
@@ -154,7 +154,7 @@ export const RichTextEditor: Component<RichTextEditorProps> = (props) => {
154
154
  );
155
155
 
156
156
  const getContentClass = () =>
157
- twMerge("outline-none prose prose-sm max-w-none dark:prose-invert", editorContentSizeClasses[local.size ?? "default"]);
157
+ twMerge("outline-none prose prose-sm max-w-none dark:prose-invert", editorContentSizeClasses[local.size ?? "md"]);
158
158
 
159
159
  return (
160
160
  <div {...rest} data-rich-text-editor class={getWrapperClass()} style={local.style}>
@@ -24,7 +24,7 @@ export const fieldBaseClass = clsx(
24
24
 
25
25
  // Size-specific styles
26
26
  export const fieldSizeClasses: Record<FieldSize, string> = {
27
- default: clsx("h-field", pad.default),
27
+ md: clsx("h-field", pad.md),
28
28
  xs: clsx("h-field-xs", pad.xs),
29
29
  sm: clsx("h-field-sm", pad.sm),
30
30
  lg: clsx("h-field-lg", pad.lg),
@@ -42,7 +42,7 @@ export const fieldInsetClass = clsx(
42
42
 
43
43
  // Inset heights (excluding 2px border)
44
44
  export const fieldInsetSizeHeightClasses: Record<FieldSize, string> = {
45
- default: clsx`h-field-inset`,
45
+ md: clsx`h-field-inset`,
46
46
  xs: clsx`h-field-inset-xs`,
47
47
  sm: clsx`h-field-inset-sm`,
48
48
  lg: clsx`h-field-inset-lg`,
@@ -57,7 +57,7 @@ export const textAreaBaseClass = clsx("inline-block w-48", fieldSurface);
57
57
 
58
58
  // Textarea size-specific styles (h-field-* removed)
59
59
  export const textAreaSizeClasses: Record<FieldSize, string> = {
60
- default: pad.default,
60
+ md: pad.md,
61
61
  xs: pad.xs,
62
62
  sm: pad.sm,
63
63
  lg: pad.lg,
@@ -75,7 +75,7 @@ export const fieldInputClass = clsx(
75
75
 
76
76
  // Prefix icon gap classes (replaces nested ternary)
77
77
  export const fieldGapClasses: Record<FieldSize, string> = {
78
- default: gap.default,
78
+ md: gap.md,
79
79
  xs: gap.xs,
80
80
  sm: gap.sm,
81
81
  lg: gap.lg,
@@ -93,10 +93,10 @@ export function getFieldWrapperClass(options: {
93
93
  return twMerge(
94
94
  fieldBaseClass,
95
95
  options.extra,
96
- fieldSizeClasses[options.size ?? "default"],
96
+ fieldSizeClasses[options.size ?? "md"],
97
97
  options.disabled && fieldDisabledClass,
98
98
  options.inset && fieldInsetClass,
99
- options.inset && fieldInsetSizeHeightClasses[options.size ?? "default"],
99
+ options.inset && fieldInsetSizeHeightClasses[options.size ?? "md"],
100
100
  options.includeCustomClass,
101
101
  );
102
102
  }
@@ -110,7 +110,7 @@ export function getTextareaWrapperClass(options: {
110
110
  }): string {
111
111
  return twMerge(
112
112
  textAreaBaseClass,
113
- textAreaSizeClasses[options.size ?? "default"],
113
+ textAreaSizeClasses[options.size ?? "md"],
114
114
  options.disabled && fieldDisabledClass,
115
115
  options.inset && fieldInsetClass,
116
116
  options.includeCustomClass,
@@ -280,7 +280,7 @@ const NumberInputInner = (props: NumberInputProps): JSX.Element => {
280
280
  disabled: local.disabled,
281
281
  inset: local.inset,
282
282
  includeCustomClass: includeCustomClass && local.class,
283
- extra: prefixEl() && fieldGapClasses[local.size ?? "default"],
283
+ extra: prefixEl() && fieldGapClasses[local.size ?? "md"],
284
284
  });
285
285
 
286
286
  const isEditable = () => !local.disabled && !local.readOnly;
@@ -224,7 +224,7 @@ const TextInputInner = (props: TextInputProps) => {
224
224
  disabled: local.disabled,
225
225
  inset: local.inset,
226
226
  includeCustomClass: includeCustomClass && local.class,
227
- extra: prefixEl() && fieldGapClasses[local.size ?? "default"],
227
+ extra: prefixEl() && fieldGapClasses[local.size ?? "md"],
228
228
  });
229
229
 
230
230
  // Whether editable
@@ -165,7 +165,7 @@ export const Textarea: Component<TextareaProps> = (props) => {
165
165
  );
166
166
 
167
167
  const getTextareaClass = () =>
168
- twMerge(textareaBaseClass, textAreaSizeClasses[local.size ?? "default"], local.inset && "p-0");
168
+ twMerge(textareaBaseClass, textAreaSizeClasses[local.size ?? "md"], local.inset && "p-0");
169
169
 
170
170
  // Whether editable
171
171
  const isEditable = () => !local.disabled && !local.readOnly;
@@ -21,9 +21,9 @@ export interface NumpadProps {
21
21
  /** Disable direct text field input */
22
22
  inputDisabled?: boolean;
23
23
  /** Show Enter button */
24
- useEnterButton?: boolean;
24
+ withEnterButton?: boolean;
25
25
  /** Show minus button */
26
- useMinusButton?: boolean;
26
+ withMinusButton?: boolean;
27
27
  /** Enter button click callback */
28
28
  onEnterButtonClick?: () => void;
29
29
  /** Size */
@@ -132,7 +132,7 @@ export const Numpad: Component<NumpadProps> = (props) => {
132
132
  return (
133
133
  <div data-numpad class={twMerge(clsx("grid grid-cols-3", gap.sm, "w-auto"), props.class)} style={props.style}>
134
134
  {/* Row 1: NumberInput + optional ENT */}
135
- <div class={clsx("flex", props.useEnterButton ? "col-span-2" : "col-span-3")}>
135
+ <div class={clsx("flex", props.withEnterButton ? "col-span-2" : "col-span-3")}>
136
136
  <NumberInput
137
137
  value={value()}
138
138
  onValueChange={handleFieldValueChange}
@@ -143,7 +143,7 @@ export const Numpad: Component<NumpadProps> = (props) => {
143
143
  useGrouping={false}
144
144
  />
145
145
  </div>
146
- <Show when={props.useEnterButton}>
146
+ <Show when={props.withEnterButton}>
147
147
  <Button
148
148
  theme="primary"
149
149
  variant="solid"
@@ -157,7 +157,7 @@ export const Numpad: Component<NumpadProps> = (props) => {
157
157
  </Show>
158
158
 
159
159
  {/* Row 2: optional Minus + C + BS */}
160
- <Show when={props.useMinusButton}>
160
+ <Show when={props.withMinusButton}>
161
161
  <Button size={buttonSize()} inset onClick={handleMinus}>
162
162
  -
163
163
  </Button>
@@ -166,7 +166,7 @@ export const Numpad: Component<NumpadProps> = (props) => {
166
166
  size={buttonSize()}
167
167
  inset
168
168
  onClick={handleClear}
169
- class={clsx(props.useMinusButton ? "col-span-1" : "col-span-2", "text-danger-500")}
169
+ class={clsx(props.withMinusButton ? "col-span-1" : "col-span-2", "text-danger-500")}
170
170
  >
171
171
  <Icon icon={IconEraser} />
172
172
  </Button>
@@ -649,7 +649,7 @@ const SelectInnerComponent = <TValue,>(props: SelectProps<TValue>) => {
649
649
  </Show>
650
650
  {/* Select all/deselect buttons */}
651
651
  <Show when={showSelectAllBar()}>
652
- <div class={clsx("flex gap-2 border-b", border.subtle, pad.default, "text-xs")}>
652
+ <div class={clsx("flex gap-2 border-b", border.subtle, pad.md, "text-xs")}>
653
653
  <button
654
654
  type="button"
655
655
  data-select-all
@@ -34,7 +34,7 @@ export interface StatePresetProps<TValue> {
34
34
  // ── Style constants ──
35
35
 
36
36
  const chipSizeClasses: Record<StatePresetSize, string> = {
37
- default: pad.default,
37
+ md: pad.md,
38
38
  xs: clsx(pad.xs, "text-sm"),
39
39
  sm: pad.sm,
40
40
  lg: pad.lg,
@@ -42,7 +42,7 @@ const chipSizeClasses: Record<StatePresetSize, string> = {
42
42
  };
43
43
 
44
44
  const iconBtnSizeClasses: Record<StatePresetSize, string> = {
45
- default: "p-0.5",
45
+ md: "p-0.5",
46
46
  xs: "p-0",
47
47
  sm: "p-0.5",
48
48
  lg: "p-1",
@@ -50,7 +50,7 @@ const iconBtnSizeClasses: Record<StatePresetSize, string> = {
50
50
  };
51
51
 
52
52
  const starBtnSizeClasses: Record<StatePresetSize, string> = {
53
- default: "p-1",
53
+ md: "p-1",
54
54
  xs: "p-0",
55
55
  sm: "p-0.5",
56
56
  lg: "p-1.5",
@@ -58,7 +58,7 @@ const starBtnSizeClasses: Record<StatePresetSize, string> = {
58
58
  };
59
59
 
60
60
  const inputSizeClasses: Record<StatePresetSize, string> = {
61
- default: clsx(pad.default, "w-24"),
61
+ md: clsx(pad.md, "w-24"),
62
62
  xs: clsx("w-16", pad.xs, "text-sm"),
63
63
  sm: clsx(pad.sm, "w-20"),
64
64
  lg: clsx(pad.lg, "w-32"),
@@ -194,22 +194,22 @@ function StatePresetInner<TValue>(props: StatePresetProps<TValue>): JSX.Element
194
194
  const containerClass = () => twMerge(clsx("inline-flex items-center", gap.lg, "flex-wrap"), local.class);
195
195
 
196
196
  const resolvedChipClass = () => twMerge(
197
- clsx("inline-flex items-center", gap.default, "rounded-full", bg.subtle, text.default, "cursor-default"),
198
- chipSizeClasses[local.size ?? "default"],
197
+ clsx("inline-flex items-center", gap.md, "rounded-full", bg.subtle, text.default, "cursor-default"),
198
+ chipSizeClasses[local.size ?? "md"],
199
199
  );
200
200
 
201
201
  const resolvedIconBtnClass = () =>
202
- twMerge("rounded-full", iconBtnSizeClasses[local.size ?? "default"]);
202
+ twMerge("rounded-full", iconBtnSizeClasses[local.size ?? "md"]);
203
203
 
204
204
  const resolvedStarBtnClass = () =>
205
205
  twMerge(
206
206
  clsx("inline-flex cursor-pointer items-center justify-center rounded-full text-warning-500 transition-colors focus:outline-none", themeTokens.warning.hoverBg),
207
- starBtnSizeClasses[local.size ?? "default"],
207
+ starBtnSizeClasses[local.size ?? "md"],
208
208
  );
209
209
 
210
210
  const resolvedInputClass = () => twMerge(
211
211
  clsx("rounded-full", bg.subtle, text.default, "border border-transparent focus:outline-none focus:ring-1 focus:ring-primary-400", text.placeholder),
212
- inputSizeClasses[local.size ?? "default"],
212
+ inputSizeClasses[local.size ?? "md"],
213
213
  );
214
214
 
215
215
  return (