@igne-agency/react-web-ui 0.4.0 → 0.6.0

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 (257) hide show
  1. package/dist/base.css +3 -0
  2. package/dist/components/accordion/accordion.css +21 -21
  3. package/dist/components/accordion/accordion.d.ts +17 -4
  4. package/dist/components/accordion/accordion.js +83 -36
  5. package/dist/components/accordion/accordion.module.js +6 -6
  6. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  7. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  8. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  9. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  10. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  11. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  12. package/dist/components/attachment-tile/index.d.ts +1 -1
  13. package/dist/components/avatar/avatar.css +9 -9
  14. package/dist/components/avatar/avatar.d.ts +50 -5
  15. package/dist/components/avatar/avatar.js +178 -64
  16. package/dist/components/avatar/avatar.module.js +3 -3
  17. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  18. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  19. package/dist/components/avatar-group/avatar-group.css +26 -20
  20. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  21. package/dist/components/avatar-group/avatar-group.js +400 -246
  22. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  23. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  25. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  26. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  27. package/dist/components/button/button.css +29 -31
  28. package/dist/components/button/button.d.ts +20 -16
  29. package/dist/components/button/button.js +140 -145
  30. package/dist/components/button/button.module.js +1 -1
  31. package/dist/components/button/index.js +1 -1
  32. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  33. package/dist/components/checkbox-field/checkbox.css +105 -56
  34. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  35. package/dist/components/checkbox-field/checkbox.js +12 -9
  36. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  37. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  38. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  39. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  42. package/dist/components/collapsible/collapsible.css +20 -20
  43. package/dist/components/collapsible/collapsible.d.ts +17 -4
  44. package/dist/components/collapsible/collapsible.js +83 -36
  45. package/dist/components/collapsible/collapsible.module.js +5 -5
  46. package/dist/components/combobox-field/combobox-field.js +206 -158
  47. package/dist/components/combobox-field/combobox.css +492 -277
  48. package/dist/components/combobox-field/combobox.d.ts +148 -39
  49. package/dist/components/combobox-field/combobox.js +506 -206
  50. package/dist/components/combobox-field/combobox.module.js +21 -21
  51. package/dist/components/combobox-field/value-state-view.css +5 -5
  52. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  53. package/dist/components/composer/composer-attachments.d.ts +30 -11
  54. package/dist/components/composer/composer-attachments.js +45 -40
  55. package/dist/components/composer/composer-editor.css +40 -35
  56. package/dist/components/composer/composer-editor.d.ts +14 -4
  57. package/dist/components/composer/composer-editor.js +134 -44
  58. package/dist/components/composer/composer-editor.module.js +5 -5
  59. package/dist/components/composer/composer.css +22 -22
  60. package/dist/components/composer/composer.d.ts +13 -2
  61. package/dist/components/composer/composer.js +78 -63
  62. package/dist/components/composer/composer.module.js +5 -5
  63. package/dist/components/composer/index.d.ts +2 -2
  64. package/dist/components/composer/mention-text.css +5 -5
  65. package/dist/components/composer/mention-text.module.js +1 -1
  66. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  67. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  69. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  70. package/dist/components/conversation/conversation.css +52 -52
  71. package/dist/components/conversation/conversation.d.ts +43 -18
  72. package/dist/components/conversation/conversation.js +120 -78
  73. package/dist/components/conversation/conversation.module.js +15 -15
  74. package/dist/components/date-field/date-field.d.ts +1 -1
  75. package/dist/components/date-field/date-field.js +202 -100
  76. package/dist/components/date-field/date-input.d.ts +73 -37
  77. package/dist/components/date-field/date-input.js +72 -45
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  80. package/dist/components/date-range-field/date-range-field.js +219 -107
  81. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  82. package/dist/components/date-range-field/date-range-input.js +83 -48
  83. package/dist/components/dialog/dialog.css +32 -32
  84. package/dist/components/dialog/dialog.d.ts +8 -7
  85. package/dist/components/dialog/dialog.js +8 -26
  86. package/dist/components/dialog/dialog.module.js +6 -6
  87. package/dist/components/divider/divider.css +6 -6
  88. package/dist/components/divider/divider.d.ts +36 -2
  89. package/dist/components/divider/divider.js +195 -29
  90. package/dist/components/divider/divider.module.js +3 -3
  91. package/dist/components/drawer/drawer.css +55 -56
  92. package/dist/components/drawer/drawer.d.ts +8 -7
  93. package/dist/components/drawer/drawer.js +8 -26
  94. package/dist/components/drawer/drawer.module.js +6 -6
  95. package/dist/components/field/field.css +34 -24
  96. package/dist/components/field/field.d.ts +60 -37
  97. package/dist/components/field/field.js +242 -157
  98. package/dist/components/field/field.module.js +12 -10
  99. package/dist/components/field/input-parts.d.ts +11 -13
  100. package/dist/components/field/input-parts.js +23 -42
  101. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  102. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  103. package/dist/components/fieldset/field-group.d.ts +1 -1
  104. package/dist/components/fieldset/field-group.js +48 -42
  105. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  106. package/dist/components/fieldset/fieldset-root.js +19 -17
  107. package/dist/components/fieldset/fieldset.d.ts +2 -2
  108. package/dist/components/fieldset/fieldset.js +2 -2
  109. package/dist/components/file-field/file-field.css +126 -60
  110. package/dist/components/file-field/file-field.js +201 -109
  111. package/dist/components/file-field/file-field.module.js +4 -4
  112. package/dist/components/file-field/file-input.d.ts +66 -40
  113. package/dist/components/file-field/file-input.js +188 -132
  114. package/dist/components/filter-bar/filter-bar.css +8 -8
  115. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  116. package/dist/components/filter-bar/filter-bar.js +23 -25
  117. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  118. package/dist/components/form/form.d.ts +19 -7
  119. package/dist/components/form/form.js +80 -29
  120. package/dist/components/icon/icon.css +2 -2
  121. package/dist/components/icon/icon.module.js +1 -1
  122. package/dist/components/link/link.css +6 -5
  123. package/dist/components/link/link.module.js +1 -1
  124. package/dist/components/menu/menu.css +52 -47
  125. package/dist/components/menu/menu.d.ts +32 -25
  126. package/dist/components/menu/menu.js +75 -124
  127. package/dist/components/menu/menu.module.js +8 -8
  128. package/dist/components/nav/nav-context.d.ts +1 -1
  129. package/dist/components/nav/nav-item-view.d.ts +10 -13
  130. package/dist/components/nav/nav-item-view.js +42 -54
  131. package/dist/components/nav/nav.css +150 -119
  132. package/dist/components/nav/nav.d.ts +61 -17
  133. package/dist/components/nav/nav.js +271 -176
  134. package/dist/components/nav/nav.module.js +17 -15
  135. package/dist/components/number-field/number-field.css +153 -64
  136. package/dist/components/number-field/number-field.d.ts +2 -2
  137. package/dist/components/number-field/number-field.js +112 -91
  138. package/dist/components/number-field/number-field.module.js +6 -6
  139. package/dist/components/number-field/number-input.d.ts +43 -23
  140. package/dist/components/number-field/number-input.js +179 -125
  141. package/dist/components/otp-field/otp-field.css +153 -60
  142. package/dist/components/otp-field/otp-field.d.ts +2 -2
  143. package/dist/components/otp-field/otp-field.js +62 -46
  144. package/dist/components/otp-field/otp-field.module.js +4 -4
  145. package/dist/components/otp-field/otp-input.d.ts +8 -6
  146. package/dist/components/otp-field/otp-input.js +92 -92
  147. package/dist/components/pagination/pagination.d.ts +46 -15
  148. package/dist/components/pagination/pagination.js +217 -224
  149. package/dist/components/password-field/password-field.css +23 -23
  150. package/dist/components/password-field/password-field.js +107 -85
  151. package/dist/components/password-field/password-field.module.js +8 -8
  152. package/dist/components/password-field/password-strength.d.ts +107 -3
  153. package/dist/components/password-field/password-strength.js +569 -92
  154. package/dist/components/photo-field/photo-field.js +137 -112
  155. package/dist/components/photo-field/photo-input.css +67 -44
  156. package/dist/components/photo-field/photo-input.d.ts +59 -15
  157. package/dist/components/photo-field/photo-input.js +173 -86
  158. package/dist/components/photo-field/photo-input.module.js +10 -8
  159. package/dist/components/popover/popover.css +41 -41
  160. package/dist/components/popover/popover.d.ts +66 -25
  161. package/dist/components/popover/popover.js +332 -217
  162. package/dist/components/popover/popover.module.js +15 -19
  163. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  164. package/dist/components/radio-group-field/radio-group.css +112 -60
  165. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  166. package/dist/components/radio-group-field/radio-group.js +66 -23
  167. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  168. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  169. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  170. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  171. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  172. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  173. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  174. package/dist/components/select-field/select.css +214 -101
  175. package/dist/components/select-field/select.d.ts +43 -11
  176. package/dist/components/select-field/select.js +194 -109
  177. package/dist/components/select-field/select.module.js +14 -14
  178. package/dist/components/skeleton/skeleton.css +4 -4
  179. package/dist/components/skeleton/skeleton.module.js +3 -3
  180. package/dist/components/stale/stale.css +15 -15
  181. package/dist/components/stale/stale.d.ts +27 -3
  182. package/dist/components/stale/stale.js +147 -66
  183. package/dist/components/stale/stale.module.js +6 -6
  184. package/dist/components/status-message/status-message.css +22 -22
  185. package/dist/components/status-message/status-message.module.js +6 -6
  186. package/dist/components/switch-field/switch-field.js +77 -57
  187. package/dist/components/switch-field/switch.css +112 -63
  188. package/dist/components/switch-field/switch.d.ts +20 -3
  189. package/dist/components/switch-field/switch.js +70 -27
  190. package/dist/components/switch-field/switch.module.js +4 -4
  191. package/dist/components/tabs/tabs.css +32 -32
  192. package/dist/components/tabs/tabs.d.ts +21 -7
  193. package/dist/components/tabs/tabs.js +73 -14
  194. package/dist/components/tabs/tabs.module.js +7 -7
  195. package/dist/components/tag/tag.css +84 -84
  196. package/dist/components/tag/tag.module.js +3 -3
  197. package/dist/components/tag-group/tag-group.css +94 -94
  198. package/dist/components/tag-group/tag-group.module.js +4 -4
  199. package/dist/components/text-field/text-field.css +159 -82
  200. package/dist/components/text-field/text-field.d.ts +1 -1
  201. package/dist/components/text-field/text-field.js +139 -110
  202. package/dist/components/text-field/text-field.module.js +9 -9
  203. package/dist/components/text-field/text-input.d.ts +81 -45
  204. package/dist/components/text-field/text-input.js +366 -217
  205. package/dist/components/textarea-field/textarea-field.css +7 -2
  206. package/dist/components/textarea-field/textarea-field.js +72 -56
  207. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  208. package/dist/components/time-field/time-field.js +153 -60
  209. package/dist/components/time-field/time-input.d.ts +21 -10
  210. package/dist/components/time-field/time-input.js +22 -11
  211. package/dist/components/toast/toast-provider.css +34 -31
  212. package/dist/components/toast/toast-provider.d.ts +63 -14
  213. package/dist/components/toast/toast-provider.js +174 -111
  214. package/dist/components/toast/toast-provider.module.js +7 -7
  215. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  216. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  217. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  218. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  220. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  221. package/dist/components/tooltip/tooltip.css +4 -4
  222. package/dist/components/tooltip/tooltip.module.js +1 -1
  223. package/dist/data-table/data-table-content.js +6 -5
  224. package/dist/data-table/data-table-parts.d.ts +41 -13
  225. package/dist/data-table/data-table-parts.js +213 -172
  226. package/dist/data-table/data-table-selection.d.ts +105 -3
  227. package/dist/data-table/data-table-selection.js +654 -145
  228. package/dist/data-table/data-table.css +125 -128
  229. package/dist/data-table/data-table.d.ts +21 -26
  230. package/dist/data-table/data-table.js +20 -23
  231. package/dist/data-table/data-table.module.js +32 -34
  232. package/dist/data-table/index.d.ts +2 -2
  233. package/dist/index.js +3 -3
  234. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  235. package/dist/lib/calendar/calendar-navigation.js +185 -118
  236. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  237. package/dist/lib/calendar/calendar-parts.js +540 -0
  238. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  239. package/dist/lib/calendar/calendar-prefab.js +311 -0
  240. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  241. package/dist/lib/calendar/calendar-year.js +139 -131
  242. package/dist/lib/calendar/temporal.css +325 -232
  243. package/dist/lib/calendar/temporal.d.ts +67 -82
  244. package/dist/lib/calendar/temporal.js +258 -569
  245. package/dist/lib/calendar/temporal.module.js +38 -38
  246. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  247. package/dist/lib/forms/use-connected-field.js +1 -1
  248. package/dist/lib/render-as.d.ts +13 -0
  249. package/dist/lib/render-as.js +46 -0
  250. package/dist/terrazzo/index.d.ts +4 -3
  251. package/dist/terrazzo/index.js +17 -6
  252. package/dist/tokens.css +28 -4
  253. package/package.json +2 -2
  254. package/tokens/dark.tokens.json +6 -0
  255. package/tokens/sys.tokens.json +7 -0
  256. package/dist/components/button/close-button.d.ts +0 -16
  257. package/dist/components/button/close-button.js +0 -30
@@ -1,6 +1,6 @@
1
1
  import { Select as BaseSelect } from "@base-ui/react/select";
2
2
  import { type ReactNode } from "react";
3
- import { Field, type FieldState, type OptionsLoad, type OptionsLoadLabels } from "../field/index.ts";
3
+ import { Field, type FieldPendingProps, type FieldState, type OptionsLoad, type OptionsLoadLabels } from "../field/index.ts";
4
4
  import { type SelectOption } from "./select-context.ts";
5
5
  export type { SelectOption };
6
6
  export type SelectRootProps<T extends string> = Omit<BaseSelect.Root.Props<T>, "items" | "onValueChange"> & Readonly<{
@@ -13,17 +13,45 @@ declare const SelectRoot: <T extends string>({ options, onValueChange, ...props
13
13
  /** The label that names the trigger. */
14
14
  declare const SelectLabel: ({ className, ...props }: BaseSelect.Label.Props) => ReactNode;
15
15
  export type SelectTriggerProps = BaseSelect.Trigger.Props & Readonly<{
16
- /** Shown while nothing is selected. */
17
- placeholder?: string;
18
16
  /** The states projected onto the trigger as `data-*` attributes. */
19
17
  state?: FieldState;
20
- /** The chevron after the value, such as an expand icon. */
21
- icon?: ReactNode;
22
18
  }>;
23
- /** The chevron after the trigger's value. Its children are the icon; without them it renders nothing. */
19
+ /**
20
+ * The chosen option's label on the trigger, or `placeholder` while nothing is
21
+ * chosen.
22
+ *
23
+ * @example
24
+ * <Select.Value placeholder="Pick a status" />
25
+ */
26
+ declare const SelectValue: ({ className, ...props }: BaseSelect.Value.Props) => ReactNode;
27
+ /**
28
+ * What the trigger shows while its `state` is pending, such as a spinner.
29
+ * Renders nothing otherwise.
30
+ *
31
+ * @example
32
+ * <Select.Pending><Spinner size={1} /></Select.Pending>
33
+ */
34
+ declare const SelectPending: (props: FieldPendingProps) => ReactNode;
35
+ /**
36
+ * The chevron after the trigger's value. Its children are the icon; without
37
+ * them it renders nothing.
38
+ *
39
+ * @example
40
+ * <Select.Icon><ExpandMoreIcon /></Select.Icon>
41
+ */
24
42
  declare const SelectIcon: ({ className, children, ...props }: BaseSelect.Icon.Props) => ReactNode;
25
- /** The button that opens the list. Without children it shows the value, the pending mark and `icon`. */
26
- declare const SelectTrigger: ({ placeholder, state, icon, className, children, ...props }: SelectTriggerProps) => ReactNode;
43
+ /**
44
+ * The button that opens the list, projecting `state` onto itself and holding
45
+ * what it is given: usually `Value`, `Pending` and `Icon`.
46
+ *
47
+ * @example
48
+ * <Select.Trigger state={state}>
49
+ * <Select.Value placeholder="Pick a status" />
50
+ * <Select.Pending><Spinner size={1} /></Select.Pending>
51
+ * <Select.Icon><ExpandMoreIcon /></Select.Icon>
52
+ * </Select.Trigger>
53
+ */
54
+ declare const SelectTrigger: ({ state, className, children, ...props }: SelectTriggerProps) => ReactNode;
27
55
  /** Places the popup against the trigger. */
28
56
  declare const SelectPositioner: ({ className, sideOffset, alignItemWithTrigger, ...props }: BaseSelect.Positioner.Props) => ReactNode;
29
57
  /** The shared popup surface the list sits on. */
@@ -45,6 +73,10 @@ export type SelectItemsProps = Readonly<{
45
73
  */
46
74
  declare const SelectItems: ({ checkIcon, }: SelectItemsProps) => ReactNode;
47
75
  export type SelectControlProps = Omit<SelectTriggerProps, "children"> & OptionsLoadLabels & SelectItemsProps & Readonly<{
76
+ /** Shown while nothing is selected. */
77
+ placeholder?: string;
78
+ /** The chevron after the value, such as an expand icon. */
79
+ icon?: ReactNode;
48
80
  /** How far the options have loaded, when they come from a query. */
49
81
  load?: OptionsLoad;
50
82
  }>;
@@ -52,13 +84,13 @@ export type SelectControlProps = Omit<SelectTriggerProps, "children"> & OptionsL
52
84
  * The trigger over the portalled list of every option: the shape almost every
53
85
  * select takes. Reach for the parts where the list needs anything else.
54
86
  */
55
- declare const SelectControl: ({ load, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, checkIcon, ...props }: SelectControlProps) => ReactNode;
87
+ declare const SelectControl: ({ placeholder, icon, load, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, checkIcon, ...props }: SelectControlProps) => ReactNode;
56
88
  /** The parts of a select. */
57
89
  export type SelectParts = Readonly<{
58
90
  Root: typeof SelectRoot;
59
91
  Label: typeof SelectLabel;
60
92
  Trigger: typeof SelectTrigger;
61
- Value: typeof BaseSelect.Value;
93
+ Value: typeof SelectValue;
62
94
  Icon: typeof SelectIcon;
63
95
  Portal: typeof BaseSelect.Portal;
64
96
  Positioner: typeof SelectPositioner;
@@ -72,7 +104,7 @@ export type SelectParts = Readonly<{
72
104
  GroupLabel: typeof BaseSelect.GroupLabel;
73
105
  Separator: typeof BaseSelect.Separator;
74
106
  Control: typeof SelectControl;
75
- Pending: typeof Field.Pending;
107
+ Pending: typeof SelectPending;
76
108
  Description: typeof Field.Description;
77
109
  Error: typeof Field.Error;
78
110
  useIds: typeof Field.useIds;
@@ -10,7 +10,7 @@ import select_module_default from "./select.module.js";
10
10
  import { c } from "react/compiler-runtime";
11
11
  import { clsx } from "clsx";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- import { useRef } from "react";
13
+ import { createContext, useContext, useRef } from "react";
14
14
  import { Select } from "@base-ui/react/select";
15
15
  // src/components/select-field/select.tsx
16
16
  /** The select's state, holding the options every part below it reads. */
@@ -101,7 +101,62 @@ var SelectLabel = (t0) => {
101
101
  return t2;
102
102
  };
103
103
  var NO_STATE = {};
104
- /** The chevron after the trigger's value. Its children are the icon; without them it renders nothing. */
104
+ var TriggerStateContext = createContext(NO_STATE);
105
+ /**
106
+ * The chosen option's label on the trigger, or `placeholder` while nothing is
107
+ * chosen.
108
+ *
109
+ * @example
110
+ * <Select.Value placeholder="Pick a status" />
111
+ */
112
+ var SelectValue = (t0) => {
113
+ const $ = c(8);
114
+ let className;
115
+ let props;
116
+ if ($[0] !== t0) {
117
+ ({className, ...props} = t0);
118
+ $[0] = t0;
119
+ $[1] = className;
120
+ $[2] = props;
121
+ } else {
122
+ className = $[1];
123
+ props = $[2];
124
+ }
125
+ let t1;
126
+ if ($[3] !== className) {
127
+ t1 = clsx(select_module_default.value, className);
128
+ $[3] = className;
129
+ $[4] = t1;
130
+ } else t1 = $[4];
131
+ let t2;
132
+ if ($[5] !== props || $[6] !== t1) {
133
+ t2 = /* @__PURE__ */ jsx(Select.Value, {
134
+ className: t1,
135
+ ...props
136
+ });
137
+ $[5] = props;
138
+ $[6] = t1;
139
+ $[7] = t2;
140
+ } else t2 = $[7];
141
+ return t2;
142
+ };
143
+ /**
144
+ * What the trigger shows while its `state` is pending, such as a spinner.
145
+ * Renders nothing otherwise.
146
+ *
147
+ * @example
148
+ * <Select.Pending><Spinner size={1} /></Select.Pending>
149
+ */
150
+ var SelectPending = (props) => {
151
+ return useContext(TriggerStateContext).pending === true ? /* @__PURE__ */ jsx(Field.Pending, { ...props }) : null;
152
+ };
153
+ /**
154
+ * The chevron after the trigger's value. Its children are the icon; without
155
+ * them it renders nothing.
156
+ *
157
+ * @example
158
+ * <Select.Icon><ExpandMoreIcon /></Select.Icon>
159
+ */
105
160
  var SelectIcon = (t0) => {
106
161
  const $ = c(8);
107
162
  let children;
@@ -132,66 +187,64 @@ var SelectIcon = (t0) => {
132
187
  } else t1 = $[7];
133
188
  return t1;
134
189
  };
135
- /** The button that opens the list. Without children it shows the value, the pending mark and `icon`. */
190
+ /**
191
+ * The button that opens the list, projecting `state` onto itself and holding
192
+ * what it is given: usually `Value`, `Pending` and `Icon`.
193
+ *
194
+ * @example
195
+ * <Select.Trigger state={state}>
196
+ * <Select.Value placeholder="Pick a status" />
197
+ * <Select.Pending><Spinner size={1} /></Select.Pending>
198
+ * <Select.Icon><ExpandMoreIcon /></Select.Icon>
199
+ * </Select.Trigger>
200
+ */
136
201
  var SelectTrigger = (t0) => {
137
- const $ = c(24);
202
+ const $ = c(20);
138
203
  let children;
139
204
  let className;
140
- let icon;
141
- let placeholder;
142
205
  let props;
143
206
  let t1;
144
207
  if ($[0] !== t0) {
145
- ({placeholder, state: t1, icon, className, children, ...props} = t0);
208
+ ({state: t1, className, children, ...props} = t0);
146
209
  $[0] = t0;
147
210
  $[1] = children;
148
211
  $[2] = className;
149
- $[3] = icon;
150
- $[4] = placeholder;
151
- $[5] = props;
152
- $[6] = t1;
212
+ $[3] = props;
213
+ $[4] = t1;
153
214
  } else {
154
215
  children = $[1];
155
216
  className = $[2];
156
- icon = $[3];
157
- placeholder = $[4];
158
- props = $[5];
159
- t1 = $[6];
217
+ props = $[3];
218
+ t1 = $[4];
160
219
  }
161
220
  const state = t1 === void 0 ? NO_STATE : t1;
162
221
  const focus = useFieldFocus(props);
163
222
  const t2 = state.validity === "invalid" || void 0;
164
223
  let t3;
165
- if ($[7] !== className) {
224
+ if ($[5] !== className) {
166
225
  t3 = clsx(select_module_default.trigger, className);
167
- $[7] = className;
168
- $[8] = t3;
169
- } else t3 = $[8];
226
+ $[5] = className;
227
+ $[6] = t3;
228
+ } else t3 = $[6];
170
229
  let t4;
171
- if ($[9] !== focus || $[10] !== state) {
230
+ if ($[7] !== focus || $[8] !== state) {
172
231
  t4 = fieldStateAttributes(withFieldFocus(state, focus));
173
- $[9] = focus;
174
- $[10] = state;
175
- $[11] = t4;
176
- } else t4 = $[11];
232
+ $[7] = focus;
233
+ $[8] = state;
234
+ $[9] = t4;
235
+ } else t4 = $[9];
177
236
  let t5;
178
- if ($[12] !== children || $[13] !== icon || $[14] !== placeholder || $[15] !== state.pending) {
179
- t5 = children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
180
- /* @__PURE__ */ jsx(Select.Value, {
181
- className: select_module_default.value,
182
- placeholder
183
- }),
184
- state.pending === true && /* @__PURE__ */ jsx(Field.Pending, {}),
185
- /* @__PURE__ */ jsx(SelectIcon, { children: icon })
186
- ] });
187
- $[12] = children;
188
- $[13] = icon;
189
- $[14] = placeholder;
190
- $[15] = state.pending;
191
- $[16] = t5;
192
- } else t5 = $[16];
237
+ if ($[10] !== children || $[11] !== state) {
238
+ t5 = /* @__PURE__ */ jsx(TriggerStateContext, {
239
+ value: state,
240
+ children
241
+ });
242
+ $[10] = children;
243
+ $[11] = state;
244
+ $[12] = t5;
245
+ } else t5 = $[12];
193
246
  let t6;
194
- if ($[17] !== focus.props || $[18] !== props || $[19] !== t2 || $[20] !== t3 || $[21] !== t4 || $[22] !== t5) {
247
+ if ($[13] !== focus.props || $[14] !== props || $[15] !== t2 || $[16] !== t3 || $[17] !== t4 || $[18] !== t5) {
195
248
  t6 = /* @__PURE__ */ jsx(Select.Trigger, {
196
249
  "aria-invalid": t2,
197
250
  className: t3,
@@ -200,14 +253,14 @@ var SelectTrigger = (t0) => {
200
253
  ...focus.props,
201
254
  children: t5
202
255
  });
203
- $[17] = focus.props;
204
- $[18] = props;
205
- $[19] = t2;
206
- $[20] = t3;
207
- $[21] = t4;
208
- $[22] = t5;
209
- $[23] = t6;
210
- } else t6 = $[23];
256
+ $[13] = focus.props;
257
+ $[14] = props;
258
+ $[15] = t2;
259
+ $[16] = t3;
260
+ $[17] = t4;
261
+ $[18] = t5;
262
+ $[19] = t6;
263
+ } else t6 = $[19];
211
264
  return t6;
212
265
  };
213
266
  /** Places the popup against the trigger. */
@@ -478,95 +531,127 @@ var SelectStatus = (t0) => {
478
531
  * select takes. Reach for the parts where the list needs anything else.
479
532
  */
480
533
  var SelectControl = (t0) => {
481
- const $ = c(27);
534
+ const $ = c(36);
482
535
  let checkIcon;
536
+ let icon;
483
537
  let loadBrokenLabel;
484
538
  let loadFailedLabel;
485
539
  let loadingLabel;
486
540
  let noOptionsLabel;
541
+ let placeholder;
487
542
  let props;
488
543
  let retryLabel;
489
544
  let t1;
490
545
  if ($[0] !== t0) {
491
- ({load: t1, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, checkIcon, ...props} = t0);
546
+ ({placeholder, icon, load: t1, loadingLabel, loadFailedLabel, loadBrokenLabel, retryLabel, noOptionsLabel, checkIcon, ...props} = t0);
492
547
  $[0] = t0;
493
548
  $[1] = checkIcon;
494
- $[2] = loadBrokenLabel;
495
- $[3] = loadFailedLabel;
496
- $[4] = loadingLabel;
497
- $[5] = noOptionsLabel;
498
- $[6] = props;
499
- $[7] = retryLabel;
500
- $[8] = t1;
549
+ $[2] = icon;
550
+ $[3] = loadBrokenLabel;
551
+ $[4] = loadFailedLabel;
552
+ $[5] = loadingLabel;
553
+ $[6] = noOptionsLabel;
554
+ $[7] = placeholder;
555
+ $[8] = props;
556
+ $[9] = retryLabel;
557
+ $[10] = t1;
501
558
  } else {
502
559
  checkIcon = $[1];
503
- loadBrokenLabel = $[2];
504
- loadFailedLabel = $[3];
505
- loadingLabel = $[4];
506
- noOptionsLabel = $[5];
507
- props = $[6];
508
- retryLabel = $[7];
509
- t1 = $[8];
560
+ icon = $[2];
561
+ loadBrokenLabel = $[3];
562
+ loadFailedLabel = $[4];
563
+ loadingLabel = $[5];
564
+ noOptionsLabel = $[6];
565
+ placeholder = $[7];
566
+ props = $[8];
567
+ retryLabel = $[9];
568
+ t1 = $[10];
510
569
  }
511
570
  const load = t1 === void 0 ? OPTIONS_LOADED : t1;
512
571
  const popupRef = useRef(null);
513
572
  let t2;
514
- if ($[9] !== props) {
515
- t2 = /* @__PURE__ */ jsx(SelectTrigger, { ...props });
516
- $[9] = props;
517
- $[10] = t2;
518
- } else t2 = $[10];
573
+ if ($[11] !== placeholder) {
574
+ t2 = /* @__PURE__ */ jsx(SelectValue, { placeholder });
575
+ $[11] = placeholder;
576
+ $[12] = t2;
577
+ } else t2 = $[12];
519
578
  let t3;
520
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
521
- t3 = (retry) => {
579
+ if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
580
+ t3 = /* @__PURE__ */ jsx(SelectPending, { children: /* @__PURE__ */ jsx(Spinner, { size: 1 }) });
581
+ $[13] = t3;
582
+ } else t3 = $[13];
583
+ let t4;
584
+ if ($[14] !== icon) {
585
+ t4 = /* @__PURE__ */ jsx(SelectIcon, { children: icon });
586
+ $[14] = icon;
587
+ $[15] = t4;
588
+ } else t4 = $[15];
589
+ let t5;
590
+ if ($[16] !== props || $[17] !== t2 || $[18] !== t4) {
591
+ t5 = /* @__PURE__ */ jsxs(SelectTrigger, {
592
+ ...props,
593
+ children: [
594
+ t2,
595
+ t3,
596
+ t4
597
+ ]
598
+ });
599
+ $[16] = props;
600
+ $[17] = t2;
601
+ $[18] = t4;
602
+ $[19] = t5;
603
+ } else t5 = $[19];
604
+ let t6;
605
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
606
+ t6 = (retry) => {
522
607
  retry();
523
608
  popupRef.current?.focus();
524
609
  };
525
- $[11] = t3;
526
- } else t3 = $[11];
527
- let t4;
528
- if ($[12] !== load || $[13] !== loadBrokenLabel || $[14] !== loadFailedLabel || $[15] !== loadingLabel || $[16] !== noOptionsLabel || $[17] !== retryLabel) {
529
- t4 = /* @__PURE__ */ jsx(SelectStatus, {
610
+ $[20] = t6;
611
+ } else t6 = $[20];
612
+ let t7;
613
+ if ($[21] !== load || $[22] !== loadBrokenLabel || $[23] !== loadFailedLabel || $[24] !== loadingLabel || $[25] !== noOptionsLabel || $[26] !== retryLabel) {
614
+ t7 = /* @__PURE__ */ jsx(SelectStatus, {
530
615
  load,
531
616
  loadingLabel,
532
617
  loadFailedLabel,
533
618
  loadBrokenLabel,
534
619
  retryLabel,
535
620
  noOptionsLabel,
536
- onRetry: t3
621
+ onRetry: t6
537
622
  });
538
- $[12] = load;
539
- $[13] = loadBrokenLabel;
540
- $[14] = loadFailedLabel;
541
- $[15] = loadingLabel;
542
- $[16] = noOptionsLabel;
543
- $[17] = retryLabel;
544
- $[18] = t4;
545
- } else t4 = $[18];
546
- let t5;
547
- if ($[19] !== checkIcon) {
548
- t5 = /* @__PURE__ */ jsx(Select.List, { children: /* @__PURE__ */ jsx(SelectItems, { checkIcon }) });
549
- $[19] = checkIcon;
550
- $[20] = t5;
551
- } else t5 = $[20];
552
- let t6;
553
- if ($[21] !== t4 || $[22] !== t5) {
554
- t6 = /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsx(SelectPositioner, { children: /* @__PURE__ */ jsxs(SelectPopup, {
623
+ $[21] = load;
624
+ $[22] = loadBrokenLabel;
625
+ $[23] = loadFailedLabel;
626
+ $[24] = loadingLabel;
627
+ $[25] = noOptionsLabel;
628
+ $[26] = retryLabel;
629
+ $[27] = t7;
630
+ } else t7 = $[27];
631
+ let t8;
632
+ if ($[28] !== checkIcon) {
633
+ t8 = /* @__PURE__ */ jsx(Select.List, { children: /* @__PURE__ */ jsx(SelectItems, { checkIcon }) });
634
+ $[28] = checkIcon;
635
+ $[29] = t8;
636
+ } else t8 = $[29];
637
+ let t9;
638
+ if ($[30] !== t7 || $[31] !== t8) {
639
+ t9 = /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsx(SelectPositioner, { children: /* @__PURE__ */ jsxs(SelectPopup, {
555
640
  ref: popupRef,
556
- children: [t4, t5]
641
+ children: [t7, t8]
557
642
  }) }) });
558
- $[21] = t4;
559
- $[22] = t5;
560
- $[23] = t6;
561
- } else t6 = $[23];
562
- let t7;
563
- if ($[24] !== t2 || $[25] !== t6) {
564
- t7 = /* @__PURE__ */ jsxs(Fragment, { children: [t2, t6] });
565
- $[24] = t2;
566
- $[25] = t6;
567
- $[26] = t7;
568
- } else t7 = $[26];
569
- return t7;
643
+ $[30] = t7;
644
+ $[31] = t8;
645
+ $[32] = t9;
646
+ } else t9 = $[32];
647
+ let t10;
648
+ if ($[33] !== t5 || $[34] !== t9) {
649
+ t10 = /* @__PURE__ */ jsxs(Fragment, { children: [t5, t9] });
650
+ $[33] = t5;
651
+ $[34] = t9;
652
+ $[35] = t10;
653
+ } else t10 = $[35];
654
+ return t10;
570
655
  };
571
656
  /**
572
657
  * The styled parts of a base-ui Select: a trigger wearing the same treatment as
@@ -592,7 +677,7 @@ var Select$1 = {
592
677
  Root: SelectRoot,
593
678
  Label: SelectLabel,
594
679
  Trigger: SelectTrigger,
595
- Value: Select.Value,
680
+ Value: SelectValue,
596
681
  Icon: SelectIcon,
597
682
  Portal: Select.Portal,
598
683
  Positioner: SelectPositioner,
@@ -606,7 +691,7 @@ var Select$1 = {
606
691
  GroupLabel: Select.GroupLabel,
607
692
  Separator: Select.Separator,
608
693
  Control: SelectControl,
609
- Pending: Field.Pending,
694
+ Pending: SelectPending,
610
695
  Description: Field.Description,
611
696
  Error: Field.Error,
612
697
  useIds: Field.useIds
@@ -1,21 +1,21 @@
1
1
  import './select.css';// src/components/select-field/select.module.scss
2
- var field = "_field_abji9_3";
3
- var label = "_label_abji9_9";
4
- var trigger = "_trigger_abji9_14";
5
- var value = "_value_abji9_95";
6
- var icon = "_icon_abji9_103";
7
- var positioner = "_positioner_abji9_108";
8
- var popup = "_popup_abji9_122";
9
- var item = "_item_abji9_148";
10
- var statusArea = "_statusArea_abji9_195";
11
- var status = "_status_abji9_195";
12
- var itemText = "_itemText_abji9_219";
13
- var itemDetail = "_itemDetail_abji9_223";
14
- var indicator = "_indicator_abji9_228";
2
+ var field = "_field_1crpp_3";
3
+ var trigger = "_trigger_1crpp_9";
4
+ var label = "_label_1crpp_12";
5
+ var value = "_value_1crpp_191";
6
+ var icon = "_icon_1crpp_202";
7
+ var positioner = "_positioner_1crpp_216";
8
+ var popup = "_popup_1crpp_230";
9
+ var item = "_item_1crpp_256";
10
+ var statusArea = "_statusArea_1crpp_308";
11
+ var status = "_status_1crpp_308";
12
+ var itemText = "_itemText_1crpp_332";
13
+ var itemDetail = "_itemDetail_1crpp_336";
14
+ var indicator = "_indicator_1crpp_341";
15
15
  var select_module_default = {
16
16
  field,
17
- label,
18
17
  trigger,
18
+ label,
19
19
  value,
20
20
  icon,
21
21
  positioner,
@@ -1,16 +1,16 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- @keyframes _loading-pulse_1vc0q_1 {
3
+ @keyframes _loading-pulse_36m01_1 {
4
4
  50% {
5
5
  opacity: 1;
6
6
  }
7
7
  }
8
- ._skeleton_1vc0q_8 {
8
+ ._skeleton_36m01_8 {
9
9
  display: block;
10
10
  border-radius: var(--skeleton-radius, var(--sys-radius-xs));
11
11
  background-color: var(--skeleton-bg, var(--sys-color-surface-highest));
12
- block-size: 1em;
12
+ block-size: var(--skeleton-block-size, 1em);
13
13
  opacity: var(--skeleton-rest, 0.75);
14
- animation: _loading-pulse_1vc0q_1 2.4s var(--sys-motion-standard) infinite;
14
+ animation: _loading-pulse_36m01_1 2.4s var(--sys-motion-standard) infinite;
15
15
  }
16
16
  }
@@ -1,9 +1,9 @@
1
1
  import './skeleton.css';// src/components/skeleton/skeleton.module.scss
2
- var skeleton = "_skeleton_1vc0q_8";
3
- var loadingPulse = "_loading-pulse_1vc0q_1";
2
+ var skeleton = "_skeleton_36m01_8";
3
+ var loadingPulse = "_loading-pulse_36m01_1";
4
4
  var skeleton_module_default = {
5
5
  skeleton,
6
- "loading-pulse": "_loading-pulse_1vc0q_1",
6
+ "loading-pulse": "_loading-pulse_36m01_1",
7
7
  loadingPulse
8
8
  };
9
9
  export { skeleton_module_default as default, loadingPulse, skeleton };
@@ -1,18 +1,18 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_1tgdq_3 {
3
+ ._root_1w3l8_3 {
4
4
  position: relative;
5
5
  }
6
6
  @media not (prefers-reduced-motion) {
7
- ._content_1tgdq_7 {
7
+ ._content_1w3l8_7 {
8
8
  transition: opacity var(--sys-motion-short) var(--sys-motion-standard);
9
9
  }
10
10
  }
11
- ._content_1tgdq_7[data-busy] {
11
+ ._content_1w3l8_7[data-busy] {
12
12
  opacity: var(--stale-busy-opacity, 0.55);
13
13
  pointer-events: none;
14
14
  }
15
- ._overlay_1tgdq_15 {
15
+ ._overlay_1w3l8_15 {
16
16
  position: absolute;
17
17
  inset: 0;
18
18
  display: flex;
@@ -22,38 +22,38 @@
22
22
  gap: var(--stale-gap, var(--sys-unit-8));
23
23
  padding: var(--stale-pad, var(--sys-unit-16));
24
24
  background-color: color-mix(in oklab, var(--stale-scrim, var(--sys-color-surface)), transparent 25%);
25
- backdrop-filter: blur(8px);
26
- color: var(--sys-color-text);
25
+ backdrop-filter: var(--stale-backdrop-filter, blur(8px));
26
+ color: var(--stale-fg, var(--sys-color-text));
27
27
  text-align: center;
28
28
  }
29
29
  @media not (prefers-reduced-motion) {
30
- ._overlay_1tgdq_15 {
30
+ ._overlay_1w3l8_15 {
31
31
  transition: opacity var(--sys-motion-short) var(--sys-motion-standard), backdrop-filter var(--sys-motion-short) var(--sys-motion-standard);
32
32
  }
33
33
  }
34
- ._overlay_1tgdq_15[data-starting-style], ._overlay_1tgdq_15[data-ending-style] {
34
+ ._overlay_1w3l8_15[data-starting-style], ._overlay_1w3l8_15[data-ending-style] {
35
35
  backdrop-filter: blur(0);
36
36
  opacity: 0;
37
37
  }
38
- ._message_1tgdq_38 {
38
+ ._message_1w3l8_38 {
39
39
  display: grid;
40
40
  justify-items: center;
41
41
  gap: var(--stale-gap, var(--sys-unit-8));
42
- max-inline-size: 40ch;
43
- color: var(--sys-color-text-muted);
44
- font: var(--sys-font-body-medium);
42
+ max-inline-size: var(--stale-measure, 40ch);
43
+ color: var(--stale-message-fg, var(--sys-color-text-muted));
44
+ font: var(--stale-message-font, var(--sys-font-body-medium));
45
45
  }
46
- ._illustration_1tgdq_46 {
46
+ ._illustration_1w3l8_46 {
47
47
  display: grid;
48
48
  place-items: center;
49
49
  color: var(--stale-illustration-fg, var(--sys-color-primary));
50
50
  }
51
51
  @media not (prefers-reduced-motion) {
52
- ._retry_1tgdq_52 {
52
+ ._retry_1w3l8_52 {
53
53
  transition: opacity var(--sys-motion-short) var(--sys-motion-standard), translate var(--sys-motion-short) var(--sys-motion-emphasized);
54
54
  }
55
55
  }
56
- ._retry_1tgdq_52[data-starting-style], ._retry_1tgdq_52[data-ending-style] {
56
+ ._retry_1w3l8_52[data-starting-style], ._retry_1w3l8_52[data-ending-style] {
57
57
  translate: 0 var(--sys-unit-2);
58
58
  opacity: 0;
59
59
  }