@danske/sapphire-react-lab 0.105.2 → 0.106.2

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 (216) hide show
  1. package/build/cjs/index.js +1607 -2284
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/index.js.map +1 -1
  4. package/build/esm/Accordion/src/Accordion.js +44 -75
  5. package/build/esm/Accordion/src/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/src/AccordionContext.js +3 -1
  7. package/build/esm/Accordion/src/AccordionContext.js.map +1 -1
  8. package/build/esm/Accordion/src/AccordionHeading.js +23 -55
  9. package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
  10. package/build/esm/Accordion/src/AccordionItem.js +18 -44
  11. package/build/esm/Accordion/src/AccordionItem.js.map +1 -1
  12. package/build/esm/Accordion/src/AccordionPanel.js +28 -45
  13. package/build/esm/Accordion/src/AccordionPanel.js.map +1 -1
  14. package/build/esm/Accordion/src/utils.js.map +1 -1
  15. package/build/esm/Alert/src/Alert.js +27 -65
  16. package/build/esm/Alert/src/Alert.js.map +1 -1
  17. package/build/esm/Amount/src/Amount.js +41 -63
  18. package/build/esm/Amount/src/Amount.js.map +1 -1
  19. package/build/esm/Amount/src/useGroupAmount.js +4 -1
  20. package/build/esm/Amount/src/useGroupAmount.js.map +1 -1
  21. package/build/esm/Autocomplete/i18n/da-DK.json.js +6 -0
  22. package/build/esm/Autocomplete/i18n/da-DK.json.js.map +1 -0
  23. package/build/esm/Autocomplete/i18n/de-DE.json.js +6 -0
  24. package/build/esm/Autocomplete/i18n/de-DE.json.js.map +1 -0
  25. package/build/esm/Autocomplete/i18n/en-US.json.js +6 -0
  26. package/build/esm/Autocomplete/i18n/en-US.json.js.map +1 -0
  27. package/build/esm/Autocomplete/i18n/fi-FI.json.js +6 -0
  28. package/build/esm/Autocomplete/i18n/fi-FI.json.js.map +1 -0
  29. package/build/esm/Autocomplete/i18n/index.js +9 -9
  30. package/build/esm/Autocomplete/i18n/index.js.map +1 -1
  31. package/build/esm/Autocomplete/i18n/nb-NO.json.js +6 -0
  32. package/build/esm/Autocomplete/i18n/nb-NO.json.js.map +1 -0
  33. package/build/esm/Autocomplete/i18n/pl-PL.json.js +6 -0
  34. package/build/esm/Autocomplete/i18n/pl-PL.json.js.map +1 -0
  35. package/build/esm/Autocomplete/i18n/sv-SE.json.js +6 -0
  36. package/build/esm/Autocomplete/i18n/sv-SE.json.js.map +1 -0
  37. package/build/esm/Autocomplete/src/Autocomplete.js +57 -76
  38. package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -1
  39. package/build/esm/Breadcrumbs/src/BreadcrumbItem.js +46 -52
  40. package/build/esm/Breadcrumbs/src/BreadcrumbItem.js.map +1 -1
  41. package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js +17 -45
  42. package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js.map +1 -1
  43. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js +25 -46
  44. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js.map +1 -1
  45. package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js +18 -11
  46. package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js.map +1 -1
  47. package/build/esm/Breadcrumbs/src/Breadcrumbs.js +47 -64
  48. package/build/esm/Breadcrumbs/src/Breadcrumbs.js.map +1 -1
  49. package/build/esm/Breadcrumbs/src/BreadcrumbsSeparator.js +8 -6
  50. package/build/esm/Breadcrumbs/src/BreadcrumbsSeparator.js.map +1 -1
  51. package/build/esm/Breadcrumbs/src/useBreadcrumbThreshold.js +6 -6
  52. package/build/esm/Breadcrumbs/src/useBreadcrumbThreshold.js.map +1 -1
  53. package/build/esm/FileDropzone/i18n/{da-DK.js → da-DK.json.js} +3 -3
  54. package/build/esm/FileDropzone/i18n/da-DK.json.js.map +1 -0
  55. package/build/esm/FileDropzone/i18n/{de-DE.js → de-DE.json.js} +3 -3
  56. package/build/esm/FileDropzone/i18n/de-DE.json.js.map +1 -0
  57. package/build/esm/FileDropzone/i18n/{en-US.js → en-US.json.js} +3 -3
  58. package/build/esm/FileDropzone/i18n/en-US.json.js.map +1 -0
  59. package/build/esm/FileDropzone/i18n/{fi-FI.js → fi-FI.json.js} +3 -3
  60. package/build/esm/FileDropzone/i18n/fi-FI.json.js.map +1 -0
  61. package/build/esm/FileDropzone/i18n/index.js +9 -9
  62. package/build/esm/FileDropzone/i18n/index.js.map +1 -1
  63. package/build/esm/FileDropzone/i18n/{nb-NO.js → nb-NO.json.js} +3 -3
  64. package/build/esm/FileDropzone/i18n/nb-NO.json.js.map +1 -0
  65. package/build/esm/FileDropzone/i18n/{pl-PL.js → pl-PL.json.js} +3 -3
  66. package/build/esm/FileDropzone/i18n/pl-PL.json.js.map +1 -0
  67. package/build/esm/FileDropzone/i18n/{sv-SE.js → sv-SE.json.js} +3 -3
  68. package/build/esm/FileDropzone/i18n/sv-SE.json.js.map +1 -0
  69. package/build/esm/FileDropzone/src/FileDropzone.js +68 -88
  70. package/build/esm/FileDropzone/src/FileDropzone.js.map +1 -1
  71. package/build/esm/FileDropzone/src/FileTrigger.js +29 -61
  72. package/build/esm/FileDropzone/src/FileTrigger.js.map +1 -1
  73. package/build/esm/FileDropzone/src/utils.js.map +1 -1
  74. package/build/esm/Filtering/src/FilterDropdown.js +91 -113
  75. package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
  76. package/build/esm/Filtering/src/SearchableSelectFilter.js +53 -70
  77. package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
  78. package/build/esm/Flag/src/Flag.js +5 -37
  79. package/build/esm/Flag/src/Flag.js.map +1 -1
  80. package/build/esm/LabeledValue/src/LabeledValue.js +21 -55
  81. package/build/esm/LabeledValue/src/LabeledValue.js.map +1 -1
  82. package/build/esm/NumberField/i18n/da-DK.json.js +9 -0
  83. package/build/esm/NumberField/i18n/da-DK.json.js.map +1 -0
  84. package/build/esm/NumberField/i18n/de-DE.json.js +9 -0
  85. package/build/esm/NumberField/i18n/de-DE.json.js.map +1 -0
  86. package/build/esm/NumberField/i18n/en-US.json.js +9 -0
  87. package/build/esm/NumberField/i18n/en-US.json.js.map +1 -0
  88. package/build/esm/NumberField/i18n/fi-FI.json.js +9 -0
  89. package/build/esm/NumberField/i18n/fi-FI.json.js.map +1 -0
  90. package/build/esm/NumberField/i18n/index.js +9 -9
  91. package/build/esm/NumberField/i18n/index.js.map +1 -1
  92. package/build/esm/NumberField/i18n/nb-NO.json.js +9 -0
  93. package/build/esm/NumberField/i18n/nb-NO.json.js.map +1 -0
  94. package/build/esm/NumberField/i18n/pl-PL.json.js +9 -0
  95. package/build/esm/NumberField/i18n/pl-PL.json.js.map +1 -0
  96. package/build/esm/NumberField/i18n/sv-SE.json.js +9 -0
  97. package/build/esm/NumberField/i18n/sv-SE.json.js.map +1 -0
  98. package/build/esm/NumberField/src/NumberField.js +130 -111
  99. package/build/esm/NumberField/src/NumberField.js.map +1 -1
  100. package/build/esm/NumberField/src/StepperButton.js +32 -53
  101. package/build/esm/NumberField/src/StepperButton.js.map +1 -1
  102. package/build/esm/NumberField/src/cursorHelpers.js +13 -8
  103. package/build/esm/NumberField/src/cursorHelpers.js.map +1 -1
  104. package/build/esm/NumberField/src/formatHelpers.js +15 -18
  105. package/build/esm/NumberField/src/formatHelpers.js.map +1 -1
  106. package/build/esm/NumberField/src/keyboardHelpers.js +13 -8
  107. package/build/esm/NumberField/src/keyboardHelpers.js.map +1 -1
  108. package/build/esm/NumberField/src/useAutofillStyle.js.map +1 -1
  109. package/build/esm/NumberField/src/useNumberFieldFormatting.js +79 -45
  110. package/build/esm/NumberField/src/useNumberFieldFormatting.js.map +1 -1
  111. package/build/esm/NumberField/src/useSapphireNumberField.js +16 -42
  112. package/build/esm/NumberField/src/useSapphireNumberField.js.map +1 -1
  113. package/build/esm/ProgressIndicator/src/ProgressIndicator.js +23 -35
  114. package/build/esm/ProgressIndicator/src/ProgressIndicator.js.map +1 -1
  115. package/build/esm/Sidebar/index.js.map +1 -1
  116. package/build/esm/Sidebar/src/Body.js +19 -44
  117. package/build/esm/Sidebar/src/Body.js.map +1 -1
  118. package/build/esm/Sidebar/src/ExpandableItem.js +89 -97
  119. package/build/esm/Sidebar/src/ExpandableItem.js.map +1 -1
  120. package/build/esm/Sidebar/src/Header.js +14 -44
  121. package/build/esm/Sidebar/src/Header.js.map +1 -1
  122. package/build/esm/Sidebar/src/Item.js +17 -44
  123. package/build/esm/Sidebar/src/Item.js.map +1 -1
  124. package/build/esm/Sidebar/src/List.js +14 -43
  125. package/build/esm/Sidebar/src/List.js.map +1 -1
  126. package/build/esm/Sidebar/src/Panel.js +56 -69
  127. package/build/esm/Sidebar/src/Panel.js.map +1 -1
  128. package/build/esm/Sidebar/src/ResponsiveSidebarContext.js +17 -9
  129. package/build/esm/Sidebar/src/ResponsiveSidebarContext.js.map +1 -1
  130. package/build/esm/Sidebar/src/SecondarySidebarContext.js +15 -12
  131. package/build/esm/Sidebar/src/SecondarySidebarContext.js.map +1 -1
  132. package/build/esm/Sidebar/src/Section.js +38 -51
  133. package/build/esm/Sidebar/src/Section.js.map +1 -1
  134. package/build/esm/Sidebar/src/Sidebar.js +65 -93
  135. package/build/esm/Sidebar/src/Sidebar.js.map +1 -1
  136. package/build/esm/Sidebar/src/useSidebar.js.map +1 -1
  137. package/build/esm/Slider/index.js.map +1 -1
  138. package/build/esm/Slider/src/Slider.js +46 -71
  139. package/build/esm/Slider/src/Slider.js.map +1 -1
  140. package/build/esm/TagGroup/src/Tag.js +71 -86
  141. package/build/esm/TagGroup/src/Tag.js.map +1 -1
  142. package/build/esm/TagGroup/src/TagGroup.js +46 -67
  143. package/build/esm/TagGroup/src/TagGroup.js.map +1 -1
  144. package/build/esm/TagGroup/src/TagItem.js +1 -1
  145. package/build/esm/TagGroup/src/TagItem.js.map +1 -1
  146. package/build/esm/TimeField/i18n/da-DK.json.js +7 -0
  147. package/build/esm/TimeField/i18n/da-DK.json.js.map +1 -0
  148. package/build/esm/TimeField/i18n/de-DE.json.js +7 -0
  149. package/build/esm/TimeField/i18n/de-DE.json.js.map +1 -0
  150. package/build/esm/TimeField/i18n/en-US.json.js +7 -0
  151. package/build/esm/TimeField/i18n/en-US.json.js.map +1 -0
  152. package/build/esm/TimeField/i18n/fi-FI.json.js +7 -0
  153. package/build/esm/TimeField/i18n/fi-FI.json.js.map +1 -0
  154. package/build/esm/TimeField/i18n/index.js +7 -7
  155. package/build/esm/TimeField/i18n/index.js.map +1 -1
  156. package/build/esm/TimeField/i18n/nb-NO.json.js +7 -0
  157. package/build/esm/TimeField/i18n/nb-NO.json.js.map +1 -0
  158. package/build/esm/TimeField/i18n/pl-PL.json.js +7 -0
  159. package/build/esm/TimeField/i18n/pl-PL.json.js.map +1 -0
  160. package/build/esm/TimeField/i18n/{sv-SE.js → sv-SE.json.js} +1 -1
  161. package/build/esm/TimeField/i18n/sv-SE.json.js.map +1 -0
  162. package/build/esm/TimeField/src/TimeField.js +67 -84
  163. package/build/esm/TimeField/src/TimeField.js.map +1 -1
  164. package/build/esm/TimeField/src/TimeFieldSegment.js +25 -37
  165. package/build/esm/TimeField/src/TimeFieldSegment.js.map +1 -1
  166. package/build/esm/index.js +1 -1
  167. package/build/index.d.ts +19 -17
  168. package/package.json +16 -39
  169. package/build/esm/Autocomplete/i18n/da-DK.js +0 -6
  170. package/build/esm/Autocomplete/i18n/da-DK.js.map +0 -1
  171. package/build/esm/Autocomplete/i18n/de-DE.js +0 -6
  172. package/build/esm/Autocomplete/i18n/de-DE.js.map +0 -1
  173. package/build/esm/Autocomplete/i18n/en-US.js +0 -6
  174. package/build/esm/Autocomplete/i18n/en-US.js.map +0 -1
  175. package/build/esm/Autocomplete/i18n/fi-FI.js +0 -6
  176. package/build/esm/Autocomplete/i18n/fi-FI.js.map +0 -1
  177. package/build/esm/Autocomplete/i18n/nb-NO.js +0 -6
  178. package/build/esm/Autocomplete/i18n/nb-NO.js.map +0 -1
  179. package/build/esm/Autocomplete/i18n/pl-PL.js +0 -6
  180. package/build/esm/Autocomplete/i18n/pl-PL.js.map +0 -1
  181. package/build/esm/Autocomplete/i18n/sv-SE.js +0 -6
  182. package/build/esm/Autocomplete/i18n/sv-SE.js.map +0 -1
  183. package/build/esm/FileDropzone/i18n/da-DK.js.map +0 -1
  184. package/build/esm/FileDropzone/i18n/de-DE.js.map +0 -1
  185. package/build/esm/FileDropzone/i18n/en-US.js.map +0 -1
  186. package/build/esm/FileDropzone/i18n/fi-FI.js.map +0 -1
  187. package/build/esm/FileDropzone/i18n/nb-NO.js.map +0 -1
  188. package/build/esm/FileDropzone/i18n/pl-PL.js.map +0 -1
  189. package/build/esm/FileDropzone/i18n/sv-SE.js.map +0 -1
  190. package/build/esm/NumberField/i18n/da-DK.js +0 -9
  191. package/build/esm/NumberField/i18n/da-DK.js.map +0 -1
  192. package/build/esm/NumberField/i18n/de-DE.js +0 -9
  193. package/build/esm/NumberField/i18n/de-DE.js.map +0 -1
  194. package/build/esm/NumberField/i18n/en-US.js +0 -9
  195. package/build/esm/NumberField/i18n/en-US.js.map +0 -1
  196. package/build/esm/NumberField/i18n/fi-FI.js +0 -9
  197. package/build/esm/NumberField/i18n/fi-FI.js.map +0 -1
  198. package/build/esm/NumberField/i18n/nb-NO.js +0 -9
  199. package/build/esm/NumberField/i18n/nb-NO.js.map +0 -1
  200. package/build/esm/NumberField/i18n/pl-PL.js +0 -9
  201. package/build/esm/NumberField/i18n/pl-PL.js.map +0 -1
  202. package/build/esm/NumberField/i18n/sv-SE.js +0 -9
  203. package/build/esm/NumberField/i18n/sv-SE.js.map +0 -1
  204. package/build/esm/TimeField/i18n/da-DK.js +0 -7
  205. package/build/esm/TimeField/i18n/da-DK.js.map +0 -1
  206. package/build/esm/TimeField/i18n/de-DE.js +0 -7
  207. package/build/esm/TimeField/i18n/de-DE.js.map +0 -1
  208. package/build/esm/TimeField/i18n/en-US.js +0 -7
  209. package/build/esm/TimeField/i18n/en-US.js.map +0 -1
  210. package/build/esm/TimeField/i18n/fi-FI.js +0 -7
  211. package/build/esm/TimeField/i18n/fi-FI.js.map +0 -1
  212. package/build/esm/TimeField/i18n/nb-NO.js +0 -7
  213. package/build/esm/TimeField/i18n/nb-NO.js.map +0 -1
  214. package/build/esm/TimeField/i18n/pl-PL.js +0 -7
  215. package/build/esm/TimeField/i18n/pl-PL.js.map +0 -1
  216. package/build/esm/TimeField/i18n/sv-SE.js.map +0 -1
@@ -1,70 +1,66 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
4
  var clsx = require('clsx');
7
- var utils = require('@react-aria/utils');
5
+ var filterDOMProps = require('react-aria/filterDOMProps');
6
+ var useObjectRef = require('react-aria/useObjectRef');
8
7
  var styles = require('@danske/sapphire-css/components/accordion/accordion.module.css');
9
8
  var sapphireReact = require('@danske/sapphire-react');
10
- var focus = require('@react-aria/focus');
9
+ var FocusScope = require('react-aria/FocusScope');
11
10
  var reactAriaComponents = require('react-aria-components');
12
11
  var react = require('@danske/sapphire-icons/react');
12
+ var useEvent = require('react-aria/private/utils/useEvent');
13
13
  var alertStyles = require('@danske/sapphire-css/components/alert/alert.module.css');
14
- var i18n = require('@react-aria/i18n');
14
+ var I18nProvider = require('react-aria/I18nProvider');
15
15
  var styles$1 = require('@danske/sapphire-css/components/amount/amount.module.css');
16
- var combobox = require('@react-aria/combobox');
17
- var utils$1 = require('@react-spectrum/utils');
18
- var breadcrumbs = require('@react-aria/breadcrumbs');
19
- var collections = require('@react-aria/collections');
16
+ var useComboBox = require('react-aria/useComboBox');
17
+ var i18n = require('@react-aria/i18n');
18
+ var utils = require('@react-spectrum/utils');
19
+ var useBreadcrumbs = require('react-aria/useBreadcrumbs');
20
+ var Collection = require('react-aria/Collection');
21
+ var CollectionBuilder = require('react-aria/CollectionBuilder');
22
+ var mergeProps = require('react-aria/mergeProps');
23
+ var useResizeObserver = require('react-aria/private/utils/useResizeObserver');
20
24
  var styles$2 = require('@danske/sapphire-css/components/breadcrumbs/breadcrumbs.module.css');
25
+ var BaseCollection = require('react-aria/private/collections/BaseCollection');
26
+ var mergeRefs = require('react-aria/mergeRefs');
21
27
  var styles$3 = require('@danske/sapphire-css/components/dropzone/dropzone.module.css');
22
- var interactions = require('@react-aria/interactions');
23
- var dnd = require('@react-aria/dnd');
24
- var visuallyHidden = require('@react-aria/visually-hidden');
25
- var utils$2 = require('@react-stately/utils');
28
+ var useHover = require('react-aria/useHover');
29
+ var Pressable = require('react-aria/Pressable');
30
+ var useId = require('react-aria/useId');
31
+ var PressResponder = require('react-aria/private/interactions/PressResponder');
32
+ var useDrop = require('react-aria/useDrop');
33
+ var useClipboard = require('react-aria/useClipboard');
34
+ var useFocusRing = require('react-aria/useFocusRing');
35
+ var VisuallyHidden = require('react-aria/VisuallyHidden');
36
+ var useEffectEvent = require('react-aria/private/utils/useEffectEvent');
37
+ var useControlledState = require('react-stately/useControlledState');
26
38
  var styles$4 = require('@danske/sapphire-css/components/filterDropdown/filterDropdown.module.css');
27
39
  var styles$5 = require('@danske/sapphire-css/components/flag/flag.module.css');
28
- var label = require('@react-aria/label');
40
+ var useField = require('react-aria/useField');
29
41
  var textFieldStyles = require('@danske/sapphire-css/components/textField/textField.module.css');
30
- var numberfield$1 = require('@react-aria/numberfield');
31
- var numberfield = require('@react-stately/numberfield');
42
+ var useNumberField = require('react-aria/useNumberField');
43
+ var useNumberFieldState = require('react-stately/useNumberFieldState');
32
44
  var styles$6 = require('@danske/sapphire-css/components/sidebar/sidebar.module.css');
45
+ var useFocusWithin = require('react-aria/useFocusWithin');
33
46
  var buttonStyles = require('@danske/sapphire-css/components/button/button.module.css');
34
47
  var reactTransitionGroup = require('react-transition-group');
35
- var listbox = require('@react-aria/listbox');
48
+ var useListBox = require('react-aria/useListBox');
36
49
  var styles$7 = require('@danske/sapphire-css/components/progressIndicator/progressIndicator.module.css');
37
- var progress = require('@react-aria/progress');
50
+ var useProgressBar = require('react-aria/useProgressBar');
38
51
  var styles$8 = require('@danske/sapphire-css/components/slider/slider.module.css');
39
- var tag = require('@react-aria/tag');
40
- var list = require('@react-stately/list');
52
+ var useTagGroup = require('react-aria/useTagGroup');
53
+ var useListState = require('react-stately/useListState');
41
54
  var styles$9 = require('@danske/sapphire-css/components/tag/tag.module.css');
42
- var button = require('@react-aria/button');
43
- var collections$1 = require('@react-stately/collections');
55
+ var useButton = require('react-aria/useButton');
56
+ var FocusRing = require('react-aria/FocusRing');
57
+ var Item = require('react-stately/Item');
44
58
  var styles$a = require('@danske/sapphire-css/components/dateField/dateField.module.css');
45
- var datepicker = require('@react-aria/datepicker');
46
- var datepicker$1 = require('@react-stately/datepicker');
47
-
48
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
49
-
50
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
51
- var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
52
- var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
53
- var alertStyles__default = /*#__PURE__*/_interopDefaultLegacy(alertStyles);
54
- var styles__default$1 = /*#__PURE__*/_interopDefaultLegacy(styles$1);
55
- var styles__default$2 = /*#__PURE__*/_interopDefaultLegacy(styles$2);
56
- var styles__default$3 = /*#__PURE__*/_interopDefaultLegacy(styles$3);
57
- var styles__default$4 = /*#__PURE__*/_interopDefaultLegacy(styles$4);
58
- var styles__default$5 = /*#__PURE__*/_interopDefaultLegacy(styles$5);
59
- var textFieldStyles__default = /*#__PURE__*/_interopDefaultLegacy(textFieldStyles);
60
- var styles__default$6 = /*#__PURE__*/_interopDefaultLegacy(styles$6);
61
- var buttonStyles__default = /*#__PURE__*/_interopDefaultLegacy(buttonStyles);
62
- var styles__default$7 = /*#__PURE__*/_interopDefaultLegacy(styles$7);
63
- var styles__default$8 = /*#__PURE__*/_interopDefaultLegacy(styles$8);
64
- var styles__default$9 = /*#__PURE__*/_interopDefaultLegacy(styles$9);
65
- var styles__default$a = /*#__PURE__*/_interopDefaultLegacy(styles$a);
66
-
67
- const AccordionContext = React__default["default"].createContext({
59
+ var useTimeField = require('react-aria/useTimeField');
60
+ var useTimeFieldState = require('react-stately/useTimeFieldState');
61
+ var useDateField = require('react-aria/useDateField');
62
+
63
+ const AccordionContext = React.createContext({
68
64
  sidePadding: void 0,
69
65
  headerLevel: 5
70
66
  });
@@ -73,85 +69,55 @@ function useAccordionContext() {
73
69
  if (context) {
74
70
  return context;
75
71
  }
76
- throw new Error("Accordion context can only be used within Accordion component.");
72
+ throw new Error(
73
+ "Accordion context can only be used within Accordion component."
74
+ );
77
75
  }
78
76
 
79
- var __defProp$x = Object.defineProperty;
80
- var __defProps$u = Object.defineProperties;
81
- var __getOwnPropDescs$u = Object.getOwnPropertyDescriptors;
82
- var __getOwnPropSymbols$x = Object.getOwnPropertySymbols;
83
- var __hasOwnProp$x = Object.prototype.hasOwnProperty;
84
- var __propIsEnum$x = Object.prototype.propertyIsEnumerable;
85
- var __defNormalProp$x = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
86
- var __spreadValues$x = (a, b) => {
87
- for (var prop in b || (b = {}))
88
- if (__hasOwnProp$x.call(b, prop))
89
- __defNormalProp$x(a, prop, b[prop]);
90
- if (__getOwnPropSymbols$x)
91
- for (var prop of __getOwnPropSymbols$x(b)) {
92
- if (__propIsEnum$x.call(b, prop))
93
- __defNormalProp$x(a, prop, b[prop]);
94
- }
95
- return a;
96
- };
97
- var __spreadProps$u = (a, b) => __defProps$u(a, __getOwnPropDescs$u(b));
98
- var __objRest$u = (source, exclude) => {
99
- var target = {};
100
- for (var prop in source)
101
- if (__hasOwnProp$x.call(source, prop) && exclude.indexOf(prop) < 0)
102
- target[prop] = source[prop];
103
- if (source != null && __getOwnPropSymbols$x)
104
- for (var prop of __getOwnPropSymbols$x(source)) {
105
- if (exclude.indexOf(prop) < 0 && __propIsEnum$x.call(source, prop))
106
- target[prop] = source[prop];
107
- }
108
- return target;
109
- };
110
- const Accordion = React.forwardRef(function Accordion2(_a, ref) {
111
- var _b = _a, {
112
- allowsMultipleExpanded = true,
113
- headerLevel = 5,
114
- hideLastDivider = false,
115
- hasNegativeSideMargin = false,
116
- sidePadding,
117
- children,
118
- expandedKeys,
119
- defaultExpandedKeys,
120
- onExpandedChange,
121
- isDisabled
122
- } = _b, props = __objRest$u(_b, [
123
- "allowsMultipleExpanded",
124
- "headerLevel",
125
- "hideLastDivider",
126
- "hasNegativeSideMargin",
127
- "sidePadding",
128
- "children",
129
- "expandedKeys",
130
- "defaultExpandedKeys",
131
- "onExpandedChange",
132
- "isDisabled"
133
- ]);
77
+ const Accordion = React.forwardRef(function Accordion2({
78
+ allowsMultipleExpanded = true,
79
+ headerLevel = 5,
80
+ hideLastDivider = false,
81
+ hasNegativeSideMargin = false,
82
+ sidePadding,
83
+ children,
84
+ expandedKeys,
85
+ defaultExpandedKeys,
86
+ onExpandedChange,
87
+ isDisabled,
88
+ ...props
89
+ }, ref) {
134
90
  sapphireReact.useThemeCheck();
135
91
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
136
- const forwardedRef = utils.useObjectRef(ref);
137
- return /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, null, /* @__PURE__ */ React__default["default"].createElement(AccordionContext.Provider, {
138
- value: { sidePadding, headerLevel }
139
- }, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosureGroup, __spreadProps$u(__spreadValues$x({}, utils.filterDOMProps(props, { global: true, labelable: true })), {
140
- allowsMultipleExpanded,
141
- expandedKeys,
142
- defaultExpandedKeys,
143
- onExpandedChange,
144
- isDisabled,
145
- ref: forwardedRef,
146
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion"], {
147
- [styles__default["default"]["sapphire-accordion--without-last-divider"]]: hideLastDivider,
148
- [styles__default["default"]["sapphire-accordion--negative-margin-self"]]: !sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin
149
- }, styleProps.className),
150
- style: __spreadValues$x(__spreadValues$x({}, sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin ? {
151
- marginLeft: typeof sidePadding === "string" ? `calc(${sidePadding} * -1)` : `-${sidePadding}px`,
152
- width: `calc(100% + calc(${sidePadding} * 2${typeof sidePadding === "string" ? "" : "px"}))`
153
- } : {}), styleProps.style)
154
- }), children)));
92
+ const forwardedRef = useObjectRef.useObjectRef(ref);
93
+ return /* @__PURE__ */ React.createElement(FocusScope.FocusScope, null, /* @__PURE__ */ React.createElement(AccordionContext.Provider, { value: { sidePadding, headerLevel } }, /* @__PURE__ */ React.createElement(
94
+ reactAriaComponents.DisclosureGroup,
95
+ {
96
+ ...filterDOMProps.filterDOMProps(props, { global: true, labelable: true }),
97
+ allowsMultipleExpanded,
98
+ expandedKeys,
99
+ defaultExpandedKeys,
100
+ onExpandedChange,
101
+ isDisabled,
102
+ ref: forwardedRef,
103
+ className: clsx(
104
+ styles["sapphire-accordion"],
105
+ {
106
+ [styles["sapphire-accordion--without-last-divider"]]: hideLastDivider,
107
+ [styles["sapphire-accordion--negative-margin-self"]]: !sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin
108
+ },
109
+ styleProps.className
110
+ ),
111
+ style: {
112
+ ...sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin ? {
113
+ marginLeft: typeof sidePadding === "string" ? `calc(${sidePadding} * -1)` : `-${sidePadding}px`,
114
+ width: `calc(100% + calc(${sidePadding} * 2${typeof sidePadding === "string" ? "" : "px"}))`
115
+ } : {},
116
+ ...styleProps.style
117
+ }
118
+ },
119
+ children
120
+ )));
155
121
  });
156
122
 
157
123
  const customPaddingStyleProps = (sidePadding) => ({
@@ -159,98 +125,36 @@ const customPaddingStyleProps = (sidePadding) => ({
159
125
  paddingRight: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`
160
126
  });
161
127
 
162
- var __defProp$w = Object.defineProperty;
163
- var __defProps$t = Object.defineProperties;
164
- var __getOwnPropDescs$t = Object.getOwnPropertyDescriptors;
165
- var __getOwnPropSymbols$w = Object.getOwnPropertySymbols;
166
- var __hasOwnProp$w = Object.prototype.hasOwnProperty;
167
- var __propIsEnum$w = Object.prototype.propertyIsEnumerable;
168
- var __defNormalProp$w = (obj, key, value) => key in obj ? __defProp$w(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
169
- var __spreadValues$w = (a, b) => {
170
- for (var prop in b || (b = {}))
171
- if (__hasOwnProp$w.call(b, prop))
172
- __defNormalProp$w(a, prop, b[prop]);
173
- if (__getOwnPropSymbols$w)
174
- for (var prop of __getOwnPropSymbols$w(b)) {
175
- if (__propIsEnum$w.call(b, prop))
176
- __defNormalProp$w(a, prop, b[prop]);
177
- }
178
- return a;
179
- };
180
- var __spreadProps$t = (a, b) => __defProps$t(a, __getOwnPropDescs$t(b));
181
- var __objRest$t = (source, exclude) => {
182
- var target = {};
183
- for (var prop in source)
184
- if (__hasOwnProp$w.call(source, prop) && exclude.indexOf(prop) < 0)
185
- target[prop] = source[prop];
186
- if (source != null && __getOwnPropSymbols$w)
187
- for (var prop of __getOwnPropSymbols$w(source)) {
188
- if (exclude.indexOf(prop) < 0 && __propIsEnum$w.call(source, prop))
189
- target[prop] = source[prop];
190
- }
191
- return target;
192
- };
193
- const AccordionHeading = React.forwardRef(function AccordionHeading2(_a, ref) {
194
- var _b = _a, { children, headerLevel } = _b, props = __objRest$t(_b, ["children", "headerLevel"]);
128
+ const AccordionHeading = React.forwardRef(function AccordionHeading2({ children, headerLevel, ...props }, ref) {
195
129
  const { sidePadding, headerLevel: contextHeaderLevel } = useAccordionContext();
196
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$t(__spreadValues$w({
197
- role: "heading",
198
- "aria-level": headerLevel != null ? headerLevel : contextHeaderLevel
199
- }, utils.filterDOMProps(props, { global: true })), {
200
- ref
201
- }), /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Button, {
202
- slot: "trigger",
203
- className: ({ isFocusVisible }) => clsx__default["default"](styles__default["default"]["sapphire-accordion__item-header"], styles__default["default"]["js-focus"], {
204
- [styles__default["default"]["is-focus"]]: isFocusVisible
205
- }),
206
- style: sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
207
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
208
- level: 6,
209
- elementType: "span"
210
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
211
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-heading"])
212
- }, children)), /* @__PURE__ */ React__default["default"].createElement("div", {
213
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-arrow"])
214
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
215
- size: "lg"
216
- }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null)))));
130
+ return /* @__PURE__ */ React.createElement(
131
+ "div",
132
+ {
133
+ role: "heading",
134
+ "aria-level": headerLevel ?? contextHeaderLevel,
135
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
136
+ ref
137
+ },
138
+ /* @__PURE__ */ React.createElement(
139
+ reactAriaComponents.Button,
140
+ {
141
+ slot: "trigger",
142
+ className: ({ isFocusVisible }) => clsx(styles["sapphire-accordion__item-header"], styles["js-focus"], {
143
+ [styles["is-focus"]]: isFocusVisible
144
+ }),
145
+ style: sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
146
+ },
147
+ /* @__PURE__ */ React.createElement(sapphireReact.Typography.Heading, { level: 6, elementType: "span" }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles["sapphire-accordion__item-heading"]) }, children)),
148
+ /* @__PURE__ */ React.createElement("div", { className: clsx(styles["sapphire-accordion__item-arrow"]) }, /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: "lg" }, /* @__PURE__ */ React.createElement(react.ChevronDown, null)))
149
+ )
150
+ );
217
151
  });
218
152
 
219
- var __defProp$v = Object.defineProperty;
220
- var __getOwnPropSymbols$v = Object.getOwnPropertySymbols;
221
- var __hasOwnProp$v = Object.prototype.hasOwnProperty;
222
- var __propIsEnum$v = Object.prototype.propertyIsEnumerable;
223
- var __defNormalProp$v = (obj, key, value) => key in obj ? __defProp$v(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
224
- var __spreadValues$v = (a, b) => {
225
- for (var prop in b || (b = {}))
226
- if (__hasOwnProp$v.call(b, prop))
227
- __defNormalProp$v(a, prop, b[prop]);
228
- if (__getOwnPropSymbols$v)
229
- for (var prop of __getOwnPropSymbols$v(b)) {
230
- if (__propIsEnum$v.call(b, prop))
231
- __defNormalProp$v(a, prop, b[prop]);
232
- }
233
- return a;
234
- };
235
- var __objRest$s = (source, exclude) => {
236
- var target = {};
237
- for (var prop in source)
238
- if (__hasOwnProp$v.call(source, prop) && exclude.indexOf(prop) < 0)
239
- target[prop] = source[prop];
240
- if (source != null && __getOwnPropSymbols$v)
241
- for (var prop of __getOwnPropSymbols$v(source)) {
242
- if (exclude.indexOf(prop) < 0 && __propIsEnum$v.call(source, prop))
243
- target[prop] = source[prop];
244
- }
245
- return target;
246
- };
247
- const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef) {
248
- var _b = _a, { children, id } = _b, props = __objRest$s(_b, ["children", "id"]);
249
- const ref = utils.useObjectRef(forwardedRef);
250
- const focusManager = focus.useFocusManager();
153
+ const AccordionItem = React.forwardRef(function AccordionItem2({ children, id, ...props }, forwardedRef) {
154
+ const ref = useObjectRef.useObjectRef(forwardedRef);
155
+ const focusManager = FocusScope.useFocusManager();
251
156
  const onKeyDown = (e) => {
252
- if (!focusManager)
253
- return;
157
+ if (!focusManager) return;
254
158
  if (!(e.target instanceof Element) || e.target.getAttribute("slot") !== "trigger")
255
159
  return;
256
160
  switch (e.key) {
@@ -274,64 +178,50 @@ const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef)
274
178
  return;
275
179
  }
276
180
  };
277
- utils.useEvent(ref, "keydown", onKeyDown);
278
- return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Disclosure, __spreadValues$v({
279
- ref,
280
- id,
281
- className: ({ isExpanded, isDisabled }) => clsx__default["default"](styles__default["default"]["sapphire-accordion__item"], {
282
- [styles__default["default"]["sapphire-accordion__item--open"]]: isExpanded,
283
- [styles__default["default"]["is-disabled"]]: isDisabled
284
- })
285
- }, props), /* @__PURE__ */ React__default["default"].createElement("div", {
286
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content-wrapper"])
287
- }, children));
181
+ useEvent.useEvent(ref, "keydown", onKeyDown);
182
+ return /* @__PURE__ */ React.createElement(
183
+ reactAriaComponents.Disclosure,
184
+ {
185
+ ref,
186
+ id,
187
+ className: ({ isExpanded, isDisabled }) => clsx(styles["sapphire-accordion__item"], {
188
+ [styles["sapphire-accordion__item--open"]]: isExpanded,
189
+ [styles["is-disabled"]]: isDisabled
190
+ }),
191
+ ...props
192
+ },
193
+ /* @__PURE__ */ React.createElement("div", { className: clsx(styles["sapphire-accordion__item-content-wrapper"]) }, children)
194
+ );
288
195
  });
289
196
 
290
- var __defProp$u = Object.defineProperty;
291
- var __defProps$s = Object.defineProperties;
292
- var __getOwnPropDescs$s = Object.getOwnPropertyDescriptors;
293
- var __getOwnPropSymbols$u = Object.getOwnPropertySymbols;
294
- var __hasOwnProp$u = Object.prototype.hasOwnProperty;
295
- var __propIsEnum$u = Object.prototype.propertyIsEnumerable;
296
- var __defNormalProp$u = (obj, key, value) => key in obj ? __defProp$u(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
297
- var __spreadValues$u = (a, b) => {
298
- for (var prop in b || (b = {}))
299
- if (__hasOwnProp$u.call(b, prop))
300
- __defNormalProp$u(a, prop, b[prop]);
301
- if (__getOwnPropSymbols$u)
302
- for (var prop of __getOwnPropSymbols$u(b)) {
303
- if (__propIsEnum$u.call(b, prop))
304
- __defNormalProp$u(a, prop, b[prop]);
305
- }
306
- return a;
307
- };
308
- var __spreadProps$s = (a, b) => __defProps$s(a, __getOwnPropDescs$s(b));
309
- var __objRest$r = (source, exclude) => {
310
- var target = {};
311
- for (var prop in source)
312
- if (__hasOwnProp$u.call(source, prop) && exclude.indexOf(prop) < 0)
313
- target[prop] = source[prop];
314
- if (source != null && __getOwnPropSymbols$u)
315
- for (var prop of __getOwnPropSymbols$u(source)) {
316
- if (exclude.indexOf(prop) < 0 && __propIsEnum$u.call(source, prop))
317
- target[prop] = source[prop];
318
- }
319
- return target;
320
- };
321
- const AccordionPanel = React.forwardRef(function AccordionPanel2(_a, ref) {
322
- var _b = _a, { children } = _b, props = __objRest$r(_b, ["children"]);
197
+ const AccordionPanel = React.forwardRef(function AccordionPanel2({ children, ...props }, ref) {
323
198
  const { sidePadding } = useAccordionContext();
324
- return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosurePanel, __spreadValues$u(__spreadProps$s(__spreadValues$u({
325
- ref
326
- }, utils.filterDOMProps(props, { global: true })), {
327
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content"]),
328
- style: {
329
- height: "var(--disclosure-panel-height)"
330
- }
331
- }), props), /* @__PURE__ */ React__default["default"].createElement("div", {
332
- style: __spreadValues$u({}, sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}),
333
- className: styles__default["default"]["sapphire-accordion__item-content-inner"]
334
- }, children));
199
+ return /* @__PURE__ */ React.createElement(
200
+ reactAriaComponents.DisclosurePanel,
201
+ {
202
+ ref,
203
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
204
+ className: clsx(styles["sapphire-accordion__item-content"]),
205
+ style: {
206
+ /**
207
+ * useDisclosure hook from react-aria uses css variable --disclosure-panel-height to
208
+ * animate the height of the panel.
209
+ */
210
+ height: "var(--disclosure-panel-height)"
211
+ },
212
+ ...props
213
+ },
214
+ /* @__PURE__ */ React.createElement(
215
+ "div",
216
+ {
217
+ style: {
218
+ ...sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
219
+ },
220
+ className: styles["sapphire-accordion__item-content-inner"]
221
+ },
222
+ children
223
+ )
224
+ );
335
225
  });
336
226
 
337
227
  const _Accordion = Object.assign(Accordion, {
@@ -340,47 +230,12 @@ const _Accordion = Object.assign(Accordion, {
340
230
  Panel: AccordionPanel
341
231
  });
342
232
 
343
- var __defProp$t = Object.defineProperty;
344
- var __defProps$r = Object.defineProperties;
345
- var __getOwnPropDescs$r = Object.getOwnPropertyDescriptors;
346
- var __getOwnPropSymbols$t = Object.getOwnPropertySymbols;
347
- var __hasOwnProp$t = Object.prototype.hasOwnProperty;
348
- var __propIsEnum$t = Object.prototype.propertyIsEnumerable;
349
- var __defNormalProp$t = (obj, key, value) => key in obj ? __defProp$t(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
350
- var __spreadValues$t = (a, b) => {
351
- for (var prop in b || (b = {}))
352
- if (__hasOwnProp$t.call(b, prop))
353
- __defNormalProp$t(a, prop, b[prop]);
354
- if (__getOwnPropSymbols$t)
355
- for (var prop of __getOwnPropSymbols$t(b)) {
356
- if (__propIsEnum$t.call(b, prop))
357
- __defNormalProp$t(a, prop, b[prop]);
358
- }
359
- return a;
360
- };
361
- var __spreadProps$r = (a, b) => __defProps$r(a, __getOwnPropDescs$r(b));
362
- var __objRest$q = (source, exclude) => {
363
- var target = {};
364
- for (var prop in source)
365
- if (__hasOwnProp$t.call(source, prop) && exclude.indexOf(prop) < 0)
366
- target[prop] = source[prop];
367
- if (source != null && __getOwnPropSymbols$t)
368
- for (var prop of __getOwnPropSymbols$t(source)) {
369
- if (exclude.indexOf(prop) < 0 && __propIsEnum$t.call(source, prop))
370
- target[prop] = source[prop];
371
- }
372
- return target;
373
- };
374
- function Alert(_a) {
375
- var _b = _a, {
376
- children,
377
- title,
378
- variant = "info"
379
- } = _b, props = __objRest$q(_b, [
380
- "children",
381
- "title",
382
- "variant"
383
- ]);
233
+ function Alert({
234
+ children,
235
+ title,
236
+ variant = "info",
237
+ ...props
238
+ }) {
384
239
  sapphireReact.useThemeCheck();
385
240
  const {
386
241
  styleProps: { style, className }
@@ -388,38 +243,35 @@ function Alert(_a) {
388
243
  const getIcon = (variant2) => {
389
244
  switch (variant2) {
390
245
  case "warning":
391
- return /* @__PURE__ */ React__default["default"].createElement(react.Warning, null);
246
+ return /* @__PURE__ */ React.createElement(react.Warning, null);
392
247
  case "positive":
393
- return /* @__PURE__ */ React__default["default"].createElement(react.CheckmarkOutline, null);
248
+ return /* @__PURE__ */ React.createElement(react.CheckmarkOutline, null);
394
249
  case "negative":
395
- return /* @__PURE__ */ React__default["default"].createElement(react.Error, null);
250
+ return /* @__PURE__ */ React.createElement(react.Error, null);
396
251
  default:
397
- return /* @__PURE__ */ React__default["default"].createElement(react.Information, null);
252
+ return /* @__PURE__ */ React.createElement(react.Information, null);
398
253
  }
399
254
  };
400
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$r(__spreadValues$t({}, utils.filterDOMProps(props, { global: true })), {
401
- className: clsx.clsx(alertStyles__default["default"]["sapphire-alert"], {
402
- [alertStyles__default["default"]["sapphire-alert--positive"]]: variant === "positive",
403
- [alertStyles__default["default"]["sapphire-alert--negative"]]: variant === "negative",
404
- [alertStyles__default["default"]["sapphire-alert--warning"]]: variant === "warning"
405
- }, className),
406
- style,
407
- role: "alert"
408
- }), /* @__PURE__ */ React__default["default"].createElement("span", {
409
- className: alertStyles__default["default"]["sapphire-alert__icon"]
410
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
411
- size: "sm"
412
- }, getIcon(variant))), /* @__PURE__ */ React__default["default"].createElement("div", {
413
- className: alertStyles__default["default"]["sapphire-alert__title"]
414
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
415
- size: "sm",
416
- isSemibold: true
417
- }, title)), /* @__PURE__ */ React__default["default"].createElement("div", {
418
- className: alertStyles__default["default"]["sapphire-alert__content"]
419
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
420
- elementType: "section",
421
- size: "md"
422
- }, children)));
255
+ return /* @__PURE__ */ React.createElement(
256
+ "div",
257
+ {
258
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
259
+ className: clsx.clsx(
260
+ alertStyles["sapphire-alert"],
261
+ {
262
+ [alertStyles["sapphire-alert--positive"]]: variant === "positive",
263
+ [alertStyles["sapphire-alert--negative"]]: variant === "negative",
264
+ [alertStyles["sapphire-alert--warning"]]: variant === "warning"
265
+ },
266
+ className
267
+ ),
268
+ style,
269
+ role: "alert"
270
+ },
271
+ /* @__PURE__ */ React.createElement("span", { className: alertStyles["sapphire-alert__icon"] }, /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: "sm" }, getIcon(variant))),
272
+ /* @__PURE__ */ React.createElement("div", { className: alertStyles["sapphire-alert__title"] }, /* @__PURE__ */ React.createElement(sapphireReact.Typography.Body, { size: "sm", isSemibold: true }, title)),
273
+ /* @__PURE__ */ React.createElement("div", { className: alertStyles["sapphire-alert__content"] }, /* @__PURE__ */ React.createElement(sapphireReact.Typography.Body, { elementType: "section", size: "md" }, children))
274
+ );
423
275
  }
424
276
 
425
277
  const useGroupAmount = (value, formatter) => {
@@ -449,76 +301,57 @@ const useGroupAmount = (value, formatter) => {
449
301
  }
450
302
  return result;
451
303
  }, [numberValue, formatter]);
452
- const formattedValue = React.useMemo(() => groupedParts.map((part) => part.value).join(""), [groupedParts]);
304
+ const formattedValue = React.useMemo(
305
+ () => groupedParts.map((part) => part.value).join(""),
306
+ [groupedParts]
307
+ );
453
308
  return { formattedValue, groupedParts };
454
309
  };
455
310
 
456
- var __defProp$s = Object.defineProperty;
457
- var __defProps$q = Object.defineProperties;
458
- var __getOwnPropDescs$q = Object.getOwnPropertyDescriptors;
459
- var __getOwnPropSymbols$s = Object.getOwnPropertySymbols;
460
- var __hasOwnProp$s = Object.prototype.hasOwnProperty;
461
- var __propIsEnum$s = Object.prototype.propertyIsEnumerable;
462
- var __defNormalProp$s = (obj, key, value) => key in obj ? __defProp$s(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
463
- var __spreadValues$s = (a, b) => {
464
- for (var prop in b || (b = {}))
465
- if (__hasOwnProp$s.call(b, prop))
466
- __defNormalProp$s(a, prop, b[prop]);
467
- if (__getOwnPropSymbols$s)
468
- for (var prop of __getOwnPropSymbols$s(b)) {
469
- if (__propIsEnum$s.call(b, prop))
470
- __defNormalProp$s(a, prop, b[prop]);
471
- }
472
- return a;
473
- };
474
- var __spreadProps$q = (a, b) => __defProps$q(a, __getOwnPropDescs$q(b));
475
- var __objRest$p = (source, exclude) => {
476
- var target = {};
477
- for (var prop in source)
478
- if (__hasOwnProp$s.call(source, prop) && exclude.indexOf(prop) < 0)
479
- target[prop] = source[prop];
480
- if (source != null && __getOwnPropSymbols$s)
481
- for (var prop of __getOwnPropSymbols$s(source)) {
482
- if (exclude.indexOf(prop) < 0 && __propIsEnum$s.call(source, prop))
483
- target[prop] = source[prop];
484
- }
485
- return target;
486
- };
487
- const Amount = (_a) => {
488
- var _b = _a, {
489
- emphasis = "regular",
490
- variant,
491
- formatOptions,
492
- value,
493
- size
494
- } = _b, props = __objRest$p(_b, [
495
- "emphasis",
496
- "variant",
497
- "formatOptions",
498
- "value",
499
- "size"
500
- ]);
311
+ const Amount = ({
312
+ emphasis = "regular",
313
+ variant,
314
+ formatOptions,
315
+ value,
316
+ size,
317
+ ...props
318
+ }) => {
501
319
  sapphireReact.useThemeCheck();
502
320
  const { styleProps, filteredProps } = sapphireReact.useSapphireStyleProps(props);
503
- const { locale } = i18n.useLocale();
504
- const formatter = React.useMemo(() => new Intl.NumberFormat(locale, __spreadValues$s({
505
- style: (formatOptions == null ? void 0 : formatOptions.currency) ? "currency" : void 0,
506
- signDisplay: (formatOptions == null ? void 0 : formatOptions.signDisplay) || String(value).startsWith("+") ? "always" : "auto",
507
- minimumFractionDigits: 2
508
- }, formatOptions)), [locale, formatOptions, value]);
321
+ const { locale } = I18nProvider.useLocale();
322
+ const formatter = React.useMemo(
323
+ () => new Intl.NumberFormat(locale, {
324
+ style: formatOptions?.currency ? "currency" : void 0,
325
+ /**
326
+ * Always show the sign if the value starts with '+' or '-'.
327
+ */
328
+ signDisplay: formatOptions?.signDisplay || String(value).startsWith("+") ? "always" : "auto",
329
+ minimumFractionDigits: 2,
330
+ ...formatOptions
331
+ }),
332
+ [locale, formatOptions, value]
333
+ );
509
334
  const { formattedValue, groupedParts } = useGroupAmount(value, formatter);
510
- return /* @__PURE__ */ React__default["default"].createElement("span", __spreadProps$q(__spreadValues$s({
511
- style: styleProps.style,
512
- className: styles__default$1["default"]["sapphire-amount"]
513
- }, filteredProps), {
514
- "aria-label": formattedValue
515
- }), groupedParts.map((part, index) => /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
516
- elementType: "span",
517
- key: index,
518
- color: variant === "positive" ? "positive" : "primary",
519
- isSemibold: emphasis === "primary" ? true : false,
520
- size
521
- }, part.value)));
335
+ return /* @__PURE__ */ React.createElement(
336
+ "span",
337
+ {
338
+ style: styleProps.style,
339
+ className: styles$1["sapphire-amount"],
340
+ ...filteredProps,
341
+ "aria-label": formattedValue
342
+ },
343
+ groupedParts.map((part, index) => /* @__PURE__ */ React.createElement(
344
+ sapphireReact.Typography.Body,
345
+ {
346
+ elementType: "span",
347
+ key: index,
348
+ color: variant === "positive" ? "positive" : "primary",
349
+ isSemibold: emphasis === "primary" ? true : false,
350
+ size
351
+ },
352
+ part.value
353
+ ))
354
+ );
522
355
  };
523
356
 
524
357
  var da$3 = {
@@ -559,113 +392,94 @@ var intlMessages$3 = {
559
392
  "sv-SE": se$3
560
393
  };
561
394
 
562
- var __defProp$r = Object.defineProperty;
563
- var __defProps$p = Object.defineProperties;
564
- var __getOwnPropDescs$p = Object.getOwnPropertyDescriptors;
565
- var __getOwnPropSymbols$r = Object.getOwnPropertySymbols;
566
- var __hasOwnProp$r = Object.prototype.hasOwnProperty;
567
- var __propIsEnum$r = Object.prototype.propertyIsEnumerable;
568
- var __defNormalProp$r = (obj, key, value) => key in obj ? __defProp$r(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
569
- var __spreadValues$r = (a, b) => {
570
- for (var prop in b || (b = {}))
571
- if (__hasOwnProp$r.call(b, prop))
572
- __defNormalProp$r(a, prop, b[prop]);
573
- if (__getOwnPropSymbols$r)
574
- for (var prop of __getOwnPropSymbols$r(b)) {
575
- if (__propIsEnum$r.call(b, prop))
576
- __defNormalProp$r(a, prop, b[prop]);
577
- }
578
- return a;
579
- };
580
- var __spreadProps$p = (a, b) => __defProps$p(a, __getOwnPropDescs$p(b));
581
- var __objRest$o = (source, exclude) => {
582
- var target = {};
583
- for (var prop in source)
584
- if (__hasOwnProp$r.call(source, prop) && exclude.indexOf(prop) < 0)
585
- target[prop] = source[prop];
586
- if (source != null && __getOwnPropSymbols$r)
587
- for (var prop of __getOwnPropSymbols$r(source)) {
588
- if (exclude.indexOf(prop) < 0 && __propIsEnum$r.call(source, prop))
589
- target[prop] = source[prop];
590
- }
591
- return target;
592
- };
593
395
  function Autocomplete(props) {
594
- var _b;
595
396
  sapphireReact.useThemeCheck();
596
397
  const formatMessage = i18n.useMessageFormatter(intlMessages$3);
597
- const _a = props, {
398
+ const {
598
399
  inputValue,
599
400
  renderInput,
600
401
  loadingState,
601
402
  loadingSkeletonRowsCount,
602
403
  listboxAriaLabel,
603
404
  onSuggestionSelected,
604
- onSelectionChange
605
- } = _a, otherProps = __objRest$o(_a, [
606
- "inputValue",
607
- "renderInput",
608
- "loadingState",
609
- "loadingSkeletonRowsCount",
610
- "listboxAriaLabel",
611
- "onSuggestionSelected",
612
- "onSelectionChange"
613
- ]);
405
+ onSelectionChange,
406
+ ...otherProps
407
+ } = props;
614
408
  const {
615
409
  styleProps: { style, className }
616
410
  } = sapphireReact.useSapphireStyleProps(props);
617
411
  const inputRef = React.useRef(null);
618
- const listBoxRef = utils$1.useFocusableRef(null);
412
+ const listBoxRef = utils.useFocusableRef(null);
619
413
  const popoverRef = React.useRef(null);
620
- const triggerRef = utils$1.useFocusableRef(null);
621
- const state = sapphireReact.useComboBoxState(__spreadProps$p(__spreadValues$r({}, props), {
414
+ const triggerRef = utils.useFocusableRef(null);
415
+ const collectionRef = React.useRef(null);
416
+ const state = sapphireReact.useComboBoxState({
417
+ ...props,
622
418
  inputValue,
623
419
  allowsEmptyCollection: loadingState === "loading",
624
420
  allowsCustomValue: true,
625
421
  shouldCloseOnBlur: true,
626
422
  onSelectionChange: (key) => {
627
423
  if (key !== null) {
628
- onSelectionChange == null ? void 0 : onSelectionChange(key);
629
- onSuggestionSelected == null ? void 0 : onSuggestionSelected(key);
424
+ onSelectionChange?.(key);
425
+ onSuggestionSelected?.(key);
426
+ const itemText = collectionRef.current?.getItem(key)?.textValue ?? "";
427
+ if (itemText) {
428
+ props.onInputChange?.(itemText);
429
+ }
630
430
  }
631
431
  }
632
- }));
633
- const { inputProps, listBoxProps } = combobox.useComboBox(__spreadProps$p(__spreadValues$r({}, props), {
634
- "aria-label": listboxAriaLabel || formatMessage("listbox-suggestions"),
635
- inputRef,
636
- listBoxRef,
637
- popoverRef
638
- }), state);
639
- const inputElement = renderInput(__spreadProps$p(__spreadValues$r({}, inputProps), {
432
+ });
433
+ collectionRef.current = state.collection;
434
+ const { inputProps, listBoxProps } = useComboBox.useComboBox(
435
+ {
436
+ ...props,
437
+ "aria-label": listboxAriaLabel || formatMessage("listbox-suggestions"),
438
+ inputRef,
439
+ listBoxRef,
440
+ popoverRef
441
+ },
442
+ state
443
+ );
444
+ const inputElement = renderInput({
445
+ ...inputProps,
640
446
  isDisabled: props.isDisabled,
641
447
  inputRef,
642
448
  "aria-haspopup": "listbox",
643
449
  "aria-expanded": state.isOpen,
644
450
  onChange: (value) => {
645
- var _a2;
646
- (_a2 = inputProps.onChange) == null ? void 0 : _a2.call(inputProps, {
451
+ inputProps.onChange?.({
647
452
  target: { value },
648
453
  currentTarget: { value }
649
454
  });
650
455
  }
651
- }));
652
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$p(__spreadValues$r({
653
- ref: triggerRef
654
- }, utils.filterDOMProps(otherProps, { global: true })), {
655
- style: __spreadValues$r({ display: "inline-flex" }, style),
656
- className
657
- }), inputElement, state.isOpen && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ListBoxPopover, {
658
- state,
659
- triggerRef,
660
- popoverRef,
661
- listBoxRef,
662
- listBoxProps,
663
- loadingState,
664
- loadingSkeletonRowsCount,
665
- selectWidth: (_b = triggerRef.current) == null ? void 0 : _b.offsetWidth,
666
- disableSelectedStyles: true,
667
- isNonModal: true
668
- }, props.children || []));
456
+ });
457
+ return /* @__PURE__ */ React.createElement(
458
+ "div",
459
+ {
460
+ ref: triggerRef,
461
+ ...filterDOMProps.filterDOMProps(otherProps, { global: true }),
462
+ style: { display: "inline-flex", ...style },
463
+ className
464
+ },
465
+ inputElement,
466
+ state.isOpen && /* @__PURE__ */ React.createElement(
467
+ sapphireReact.ListBoxPopover,
468
+ {
469
+ state,
470
+ triggerRef,
471
+ popoverRef,
472
+ listBoxRef,
473
+ listBoxProps,
474
+ loadingState,
475
+ loadingSkeletonRowsCount,
476
+ selectWidth: triggerRef.current?.offsetWidth,
477
+ disableSelectedStyles: true,
478
+ isNonModal: true
479
+ },
480
+ props.children || []
481
+ )
482
+ );
669
483
  }
670
484
 
671
485
  const useBreadcrumbThreshold = (childrenCount, containerRef, breadcrumbRef) => {
@@ -698,9 +512,10 @@ const useBreadcrumbThreshold = (childrenCount, containerRef, breadcrumbRef) => {
698
512
  };
699
513
  }, [itemWidths, containerWidth, childrenCount]);
700
514
  const computeItemWidths = () => {
701
- if (!breadcrumbRef.current)
702
- return;
703
- const breadcrumbItems = Array.from(breadcrumbRef.current.children);
515
+ if (!breadcrumbRef.current) return;
516
+ const breadcrumbItems = Array.from(
517
+ breadcrumbRef.current.children
518
+ );
704
519
  const widths = breadcrumbItems.map((item) => item.offsetWidth).filter(Boolean);
705
520
  if (widths.length === breadcrumbItems.length) {
706
521
  setItemWidths(widths);
@@ -711,11 +526,10 @@ const useBreadcrumbThreshold = (childrenCount, containerRef, breadcrumbRef) => {
711
526
  computeItemWidths();
712
527
  }
713
528
  }, [containerRef.current, childrenCount]);
714
- utils.useResizeObserver({
529
+ useResizeObserver.useResizeObserver({
715
530
  ref: containerRef,
716
531
  onResize: () => {
717
- if (!containerRef.current)
718
- return;
532
+ if (!containerRef.current) return;
719
533
  setContainerWidth(containerRef.current.offsetWidth);
720
534
  }
721
535
  });
@@ -734,332 +548,233 @@ const useBreadcrumbThreshold = (childrenCount, containerRef, breadcrumbRef) => {
734
548
  };
735
549
  };
736
550
 
737
- var __defProp$q = Object.defineProperty;
738
- var __defProps$o = Object.defineProperties;
739
- var __getOwnPropDescs$o = Object.getOwnPropertyDescriptors;
740
- var __getOwnPropSymbols$q = Object.getOwnPropertySymbols;
741
- var __hasOwnProp$q = Object.prototype.hasOwnProperty;
742
- var __propIsEnum$q = Object.prototype.propertyIsEnumerable;
743
- var __defNormalProp$q = (obj, key, value) => key in obj ? __defProp$q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
744
- var __spreadValues$q = (a, b) => {
745
- for (var prop in b || (b = {}))
746
- if (__hasOwnProp$q.call(b, prop))
747
- __defNormalProp$q(a, prop, b[prop]);
748
- if (__getOwnPropSymbols$q)
749
- for (var prop of __getOwnPropSymbols$q(b)) {
750
- if (__propIsEnum$q.call(b, prop))
751
- __defNormalProp$q(a, prop, b[prop]);
752
- }
753
- return a;
754
- };
755
- var __spreadProps$o = (a, b) => __defProps$o(a, __getOwnPropDescs$o(b));
756
- var __objRest$n = (source, exclude) => {
757
- var target = {};
758
- for (var prop in source)
759
- if (__hasOwnProp$q.call(source, prop) && exclude.indexOf(prop) < 0)
760
- target[prop] = source[prop];
761
- if (source != null && __getOwnPropSymbols$q)
762
- for (var prop of __getOwnPropSymbols$q(source)) {
763
- if (exclude.indexOf(prop) < 0 && __propIsEnum$q.call(source, prop))
764
- target[prop] = source[prop];
765
- }
766
- return target;
767
- };
768
551
  const BreadcrumbsContext = React.createContext({ size: "md", overflowNodes: [] });
769
- const Breadcrumbs = React.forwardRef(function Breadcrumbs2(_a, fwdRef) {
770
- var _b = _a, { maxWidth, size = "md" } = _b, props = __objRest$n(_b, ["maxWidth", "size"]);
552
+ const Breadcrumbs = React.forwardRef(function Breadcrumbs2({ maxWidth, size = "md", ...props }, fwdRef) {
771
553
  const [RACprops, ref] = reactAriaComponents.useContextProps(props, fwdRef, reactAriaComponents.BreadcrumbsContext);
772
554
  const { styleProps } = sapphireReact.useSapphireStyleProps(RACprops);
773
555
  const containerRef = React.useRef(null);
774
556
  const { CollectionRoot } = React.useContext(reactAriaComponents.CollectionRendererContext);
775
- const { navProps } = breadcrumbs.useBreadcrumbs(RACprops);
776
- const DOMProps = utils.filterDOMProps(RACprops, { global: true });
777
- return /* @__PURE__ */ React__default["default"].createElement(collections.CollectionBuilder, {
778
- content: /* @__PURE__ */ React__default["default"].createElement(collections.Collection, __spreadValues$q({}, RACprops))
779
- }, (collection) => {
780
- const { overflowNodes } = useBreadcrumbThreshold(collection.size, containerRef, ref);
781
- const keys = Array.from(collection.getKeys());
782
- return /* @__PURE__ */ React__default["default"].createElement("div", {
783
- ref: containerRef,
784
- style: __spreadProps$o(__spreadValues$q({}, styleProps.style), {
785
- maxWidth,
786
- display: "flex"
787
- })
788
- }, /* @__PURE__ */ React__default["default"].createElement("ol", __spreadProps$o(__spreadValues$q({
557
+ const { navProps } = useBreadcrumbs.useBreadcrumbs(RACprops);
558
+ const DOMProps = filterDOMProps.filterDOMProps(RACprops, { global: true });
559
+ return /* @__PURE__ */ React.createElement(CollectionBuilder.CollectionBuilder, { content: /* @__PURE__ */ React.createElement(Collection.Collection, { ...RACprops }) }, (collection) => {
560
+ const { overflowNodes } = useBreadcrumbThreshold(
561
+ collection.size,
562
+ containerRef,
789
563
  ref
790
- }, utils.mergeProps(DOMProps, navProps)), {
791
- className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs"], {
792
- [styles__default$2["default"]["sapphire-breadcrumbs--sm"]]: size === "sm",
793
- [styles__default$2["default"]["sapphire-breadcrumbs--lg"]]: size === "lg"
794
- })
795
- }), /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsContext.Provider, {
796
- value: {
797
- size,
798
- overflowNodes: overflowNodes.map((index) => collection.getItem(keys[index])),
799
- isDisabled: RACprops.isDisabled
800
- }
801
- }, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.BreadcrumbsContext.Provider, {
802
- value: RACprops
803
- }, /* @__PURE__ */ React__default["default"].createElement(CollectionRoot, {
804
- collection
805
- })))));
564
+ );
565
+ const keys = Array.from(collection.getKeys());
566
+ return /* @__PURE__ */ React.createElement(
567
+ "div",
568
+ {
569
+ ref: containerRef,
570
+ style: {
571
+ ...styleProps.style,
572
+ maxWidth,
573
+ display: "flex"
574
+ }
575
+ },
576
+ /* @__PURE__ */ React.createElement(
577
+ "ol",
578
+ {
579
+ ref,
580
+ ...mergeProps.mergeProps(DOMProps, navProps),
581
+ className: clsx(styles$2["sapphire-breadcrumbs"], {
582
+ [styles$2["sapphire-breadcrumbs--sm"]]: size === "sm",
583
+ [styles$2["sapphire-breadcrumbs--lg"]]: size === "lg"
584
+ })
585
+ },
586
+ /* @__PURE__ */ React.createElement(
587
+ BreadcrumbsContext.Provider,
588
+ {
589
+ value: {
590
+ size,
591
+ overflowNodes: overflowNodes.map(
592
+ (index) => collection.getItem(keys[index])
593
+ ),
594
+ isDisabled: RACprops.isDisabled
595
+ }
596
+ },
597
+ /* @__PURE__ */ React.createElement(reactAriaComponents.BreadcrumbsContext.Provider, { value: RACprops }, /* @__PURE__ */ React.createElement(CollectionRoot, { collection }))
598
+ )
599
+ )
600
+ );
806
601
  });
807
602
  });
808
603
 
809
604
  const BreadcrumbsSeparator = () => {
810
605
  const { size } = React.useContext(BreadcrumbsContext);
811
606
  const iconSize = size === "lg" ? "md" : "sm";
812
- return /* @__PURE__ */ React__default["default"].createElement("span", {
813
- className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__separator"]),
814
- "aria-hidden": "true"
815
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
816
- size: iconSize
817
- }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronRight, null)));
607
+ return /* @__PURE__ */ React.createElement(
608
+ "span",
609
+ {
610
+ className: clsx(styles$2["sapphire-breadcrumbs__separator"]),
611
+ "aria-hidden": "true"
612
+ },
613
+ /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: iconSize }, /* @__PURE__ */ React.createElement(react.ChevronRight, null))
614
+ );
818
615
  };
819
616
 
820
617
  const BreadcrumbOverflowMenu = () => {
821
618
  const { size, overflowNodes } = React.useContext(BreadcrumbsContext);
822
- return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Menu, {
823
- triggerElement: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, {
824
- "aria-label": "Show more breadcrumbs",
825
- size
826
- }, /* @__PURE__ */ React__default["default"].createElement(react.OverflowMenuHorizontal, null))
827
- }, overflowNodes.map((item) => !item ? null : /* @__PURE__ */ React__default["default"].createElement(sapphireReact.MenuItem, {
828
- key: item.key,
829
- id: item.key,
830
- href: item.href,
831
- isDisabled: !item.href
832
- }, item.rendered))), /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsSeparator, null));
833
- };
834
-
835
- var __defProp$p = Object.defineProperty;
836
- var __defProps$n = Object.defineProperties;
837
- var __getOwnPropDescs$n = Object.getOwnPropertyDescriptors;
838
- var __getOwnPropSymbols$p = Object.getOwnPropertySymbols;
839
- var __hasOwnProp$p = Object.prototype.hasOwnProperty;
840
- var __propIsEnum$p = Object.prototype.propertyIsEnumerable;
841
- var __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
842
- var __spreadValues$p = (a, b) => {
843
- for (var prop in b || (b = {}))
844
- if (__hasOwnProp$p.call(b, prop))
845
- __defNormalProp$p(a, prop, b[prop]);
846
- if (__getOwnPropSymbols$p)
847
- for (var prop of __getOwnPropSymbols$p(b)) {
848
- if (__propIsEnum$p.call(b, prop))
849
- __defNormalProp$p(a, prop, b[prop]);
850
- }
851
- return a;
852
- };
853
- var __spreadProps$n = (a, b) => __defProps$n(a, __getOwnPropDescs$n(b));
854
- var __objRest$m = (source, exclude) => {
855
- var target = {};
856
- for (var prop in source)
857
- if (__hasOwnProp$p.call(source, prop) && exclude.indexOf(prop) < 0)
858
- target[prop] = source[prop];
859
- if (source != null && __getOwnPropSymbols$p)
860
- for (var prop of __getOwnPropSymbols$p(source)) {
861
- if (exclude.indexOf(prop) < 0 && __propIsEnum$p.call(source, prop))
862
- target[prop] = source[prop];
863
- }
864
- return target;
865
- };
866
- const BreadcrumbItemStatic = React.forwardRef(function BreadcrumbItemStatic2(_a, ref) {
867
- var _b = _a, { size } = _b, props = __objRest$m(_b, ["size"]);
619
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
620
+ sapphireReact.Menu,
621
+ {
622
+ triggerElement: /* @__PURE__ */ React.createElement(sapphireReact.IconButton, { "aria-label": "Show more breadcrumbs", size }, /* @__PURE__ */ React.createElement(react.OverflowMenuHorizontal, null))
623
+ },
624
+ overflowNodes.map(
625
+ (item) => !item ? null : /* @__PURE__ */ React.createElement(
626
+ sapphireReact.MenuItem,
627
+ {
628
+ key: item.key,
629
+ id: item.key,
630
+ href: item.href,
631
+ isDisabled: !item.href
632
+ },
633
+ item.rendered
634
+ )
635
+ )
636
+ ), /* @__PURE__ */ React.createElement(BreadcrumbsSeparator, null));
637
+ };
638
+
639
+ const BreadcrumbItemStatic = React.forwardRef(function BreadcrumbItemStatic2({ size, ...props }, ref) {
868
640
  sapphireReact.useThemeCheck();
869
641
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
870
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.TooltipIfNeeded, {
871
- title: props.children
872
- }, (tooltipContentRef, tooltipProps) => {
873
- const positioningRef = tooltipProps == null ? void 0 : tooltipProps.ref;
874
- return /* @__PURE__ */ React__default["default"].createElement("span", __spreadProps$n(__spreadValues$p({}, tooltipProps), {
875
- ref: utils.mergeRefs(ref, tooltipContentRef, positioningRef),
876
- className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__item--static"], {
877
- [styles__default$2["default"]["sapphire-breadcrumbs__item--static--sm"]]: size === "sm",
878
- [styles__default$2["default"]["sapphire-breadcrumbs__item--static--lg"]]: size === "lg"
879
- }, styleProps.className),
880
- style: styleProps.style
881
- }), props.children);
642
+ return /* @__PURE__ */ React.createElement(sapphireReact.TooltipIfNeeded, { title: props.children }, (tooltipContentRef, tooltipProps) => {
643
+ const positioningRef = tooltipProps?.ref;
644
+ return /* @__PURE__ */ React.createElement(
645
+ "span",
646
+ {
647
+ ...tooltipProps,
648
+ ref: mergeRefs.mergeRefs(
649
+ ref,
650
+ tooltipContentRef,
651
+ positioningRef
652
+ ),
653
+ className: clsx(
654
+ styles$2["sapphire-breadcrumbs__item--static"],
655
+ {
656
+ [styles$2["sapphire-breadcrumbs__item--static--sm"]]: size === "sm",
657
+ [styles$2["sapphire-breadcrumbs__item--static--lg"]]: size === "lg"
658
+ },
659
+ styleProps.className
660
+ ),
661
+ style: styleProps.style
662
+ },
663
+ props.children
664
+ );
882
665
  });
883
666
  });
884
667
 
885
- var __defProp$o = Object.defineProperty;
886
- var __defProps$m = Object.defineProperties;
887
- var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
888
- var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
889
- var __hasOwnProp$o = Object.prototype.hasOwnProperty;
890
- var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
891
- var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
892
- var __spreadValues$o = (a, b) => {
893
- for (var prop in b || (b = {}))
894
- if (__hasOwnProp$o.call(b, prop))
895
- __defNormalProp$o(a, prop, b[prop]);
896
- if (__getOwnPropSymbols$o)
897
- for (var prop of __getOwnPropSymbols$o(b)) {
898
- if (__propIsEnum$o.call(b, prop))
899
- __defNormalProp$o(a, prop, b[prop]);
900
- }
901
- return a;
902
- };
903
- var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
904
- var __objRest$l = (source, exclude) => {
905
- var target = {};
906
- for (var prop in source)
907
- if (__hasOwnProp$o.call(source, prop) && exclude.indexOf(prop) < 0)
908
- target[prop] = source[prop];
909
- if (source != null && __getOwnPropSymbols$o)
910
- for (var prop of __getOwnPropSymbols$o(source)) {
911
- if (exclude.indexOf(prop) < 0 && __propIsEnum$o.call(source, prop))
912
- target[prop] = source[prop];
913
- }
914
- return target;
915
- };
916
- const BreadcrumbItemLink = React.forwardRef(function BreadcrumbItemLink2(_a, ref) {
917
- var _b = _a, { children } = _b, props = __objRest$l(_b, ["children"]);
668
+ const BreadcrumbItemLink = React.forwardRef(function BreadcrumbItemLink2({ children, ...props }, ref) {
918
669
  sapphireReact.useThemeCheck();
919
670
  const { styleProps: sapphireStyleProps } = sapphireReact.useSapphireStyleProps(props);
920
- const _a2 = sapphireStyleProps, { style, className } = _a2, styleProps = __objRest$l(_a2, ["style", "className"]);
671
+ const { style, className, ...styleProps } = sapphireStyleProps;
921
672
  const { size } = React.useContext(BreadcrumbsContext);
922
673
  if (!props.href && !props.UNSAFE_onClick) {
923
- return /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemStatic, __spreadProps$m(__spreadValues$o({}, props), {
924
- size
925
- }), children);
674
+ return /* @__PURE__ */ React.createElement(BreadcrumbItemStatic, { ...props, size }, children);
926
675
  }
927
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$m(__spreadValues$o(__spreadValues$o({}, props), styleProps), {
928
- UNSAFE_className: className,
929
- UNSAFE_style: __spreadValues$o({}, style),
930
- ref,
931
- size,
932
- variant: "tertiary",
933
- isDisabled: props.isDisabled
934
- }), children);
676
+ return /* @__PURE__ */ React.createElement(
677
+ sapphireReact.Button,
678
+ {
679
+ ...props,
680
+ ...styleProps,
681
+ UNSAFE_className: className,
682
+ UNSAFE_style: { ...style },
683
+ ref,
684
+ size,
685
+ variant: "tertiary",
686
+ isDisabled: props.isDisabled
687
+ },
688
+ children
689
+ );
935
690
  });
936
691
  BreadcrumbItemLink.displayName = "BreadcrumbItemLink";
937
692
 
938
- var __defProp$n = Object.defineProperty;
939
- var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
940
- var __hasOwnProp$n = Object.prototype.hasOwnProperty;
941
- var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
942
- var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
943
- var __spreadValues$n = (a, b) => {
944
- for (var prop in b || (b = {}))
945
- if (__hasOwnProp$n.call(b, prop))
946
- __defNormalProp$n(a, prop, b[prop]);
947
- if (__getOwnPropSymbols$n)
948
- for (var prop of __getOwnPropSymbols$n(b)) {
949
- if (__propIsEnum$n.call(b, prop))
950
- __defNormalProp$n(a, prop, b[prop]);
951
- }
952
- return a;
953
- };
954
- class BreadcrumbItemCollectionNode extends collections.CollectionNode {
693
+ class BreadcrumbItemCollectionNode extends BaseCollection.CollectionNode {
694
+ static type = "item";
955
695
  }
956
- BreadcrumbItemCollectionNode.type = "item";
957
- const BreadcrumbItem = collections.createLeafComponent(BreadcrumbItemCollectionNode, function BreadcrumbItem2(props, ref, node) {
958
- var _a;
959
- sapphireReact.useThemeCheck();
960
- const { styleProps } = sapphireReact.useSapphireStyleProps(props);
961
- const {
962
- size,
963
- overflowNodes,
964
- isDisabled: breadcrumbsDisabled
965
- } = React.useContext(BreadcrumbsContext);
966
- const { isDisabled: individualDisabled = false } = props;
967
- const isCurrent = node.nextKey == null;
968
- const isDisabled = individualDisabled || breadcrumbsDisabled;
969
- const shouldRender = !overflowNodes.some((item) => (item == null ? void 0 : item.key) === node.key);
970
- const showOverflowMenu = ((_a = overflowNodes[0]) == null ? void 0 : _a.key) === node.key;
971
- if (!shouldRender && !showOverflowMenu) {
972
- return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null);
973
- }
974
- if (!shouldRender && showOverflowMenu) {
975
- return /* @__PURE__ */ React__default["default"].createElement(BreadcrumbOverflowMenu, null);
696
+ const BreadcrumbItem = CollectionBuilder.createLeafComponent(
697
+ BreadcrumbItemCollectionNode,
698
+ function BreadcrumbItem2(props, ref, node) {
699
+ sapphireReact.useThemeCheck();
700
+ const { styleProps } = sapphireReact.useSapphireStyleProps(props);
701
+ const {
702
+ size,
703
+ overflowNodes,
704
+ isDisabled: breadcrumbsDisabled
705
+ } = React.useContext(BreadcrumbsContext);
706
+ const { isDisabled: individualDisabled = false } = props;
707
+ const isCurrent = node.nextKey == null;
708
+ const isDisabled = individualDisabled || breadcrumbsDisabled;
709
+ const shouldRender = !overflowNodes.some((item) => item?.key === node.key);
710
+ const showOverflowMenu = overflowNodes[0]?.key === node.key;
711
+ if (!shouldRender && !showOverflowMenu) {
712
+ return /* @__PURE__ */ React.createElement(React.Fragment, null);
713
+ }
714
+ if (!shouldRender && showOverflowMenu) {
715
+ return /* @__PURE__ */ React.createElement(BreadcrumbOverflowMenu, null);
716
+ }
717
+ node.href = props.href;
718
+ return /* @__PURE__ */ React.createElement(
719
+ "li",
720
+ {
721
+ ref,
722
+ className: clsx(styles$2["sapphire-breadcrumbs__item"]),
723
+ style: { ...styleProps.style },
724
+ "data-disabled": isDisabled || void 0,
725
+ "data-current": isCurrent || void 0
726
+ },
727
+ isCurrent ? /* @__PURE__ */ React.createElement(
728
+ sapphireReact.Typography.Body,
729
+ {
730
+ elementType: "span",
731
+ isSemibold: true,
732
+ size: size === "lg" ? "md" : size === "md" ? "sm" : "xs"
733
+ },
734
+ node.rendered
735
+ ) : /* @__PURE__ */ React.createElement(BreadcrumbItemLink, { isDisabled, ...props }, node.rendered),
736
+ !isCurrent && /* @__PURE__ */ React.createElement(BreadcrumbsSeparator, null)
737
+ );
976
738
  }
977
- node.href = props.href;
978
- return /* @__PURE__ */ React__default["default"].createElement("li", {
979
- ref,
980
- className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__item"]),
981
- style: __spreadValues$n({}, styleProps.style),
982
- "data-disabled": isDisabled || void 0,
983
- "data-current": isCurrent || void 0
984
- }, isCurrent ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
985
- elementType: "span",
986
- isSemibold: true,
987
- size: size === "lg" ? "md" : size === "md" ? "sm" : "xs"
988
- }, node.rendered) : /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemLink, __spreadValues$n({
989
- isDisabled
990
- }, props), node.rendered), !isCurrent && /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsSeparator, null));
991
- });
739
+ );
992
740
 
993
- var __defProp$m = Object.defineProperty;
994
- var __defProps$l = Object.defineProperties;
995
- var __getOwnPropDescs$l = Object.getOwnPropertyDescriptors;
996
- var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
997
- var __hasOwnProp$m = Object.prototype.hasOwnProperty;
998
- var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
999
- var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1000
- var __spreadValues$m = (a, b) => {
1001
- for (var prop in b || (b = {}))
1002
- if (__hasOwnProp$m.call(b, prop))
1003
- __defNormalProp$m(a, prop, b[prop]);
1004
- if (__getOwnPropSymbols$m)
1005
- for (var prop of __getOwnPropSymbols$m(b)) {
1006
- if (__propIsEnum$m.call(b, prop))
1007
- __defNormalProp$m(a, prop, b[prop]);
1008
- }
1009
- return a;
1010
- };
1011
- var __spreadProps$l = (a, b) => __defProps$l(a, __getOwnPropDescs$l(b));
1012
- var __objRest$k = (source, exclude) => {
1013
- var target = {};
1014
- for (var prop in source)
1015
- if (__hasOwnProp$m.call(source, prop) && exclude.indexOf(prop) < 0)
1016
- target[prop] = source[prop];
1017
- if (source != null && __getOwnPropSymbols$m)
1018
- for (var prop of __getOwnPropSymbols$m(source)) {
1019
- if (exclude.indexOf(prop) < 0 && __propIsEnum$m.call(source, prop))
1020
- target[prop] = source[prop];
1021
- }
1022
- return target;
1023
- };
1024
- const HiddenFileInput = React__default["default"].forwardRef(function InputWrapper(props, ref) {
1025
- return /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$l(__spreadValues$m({}, props), {
1026
- ref,
1027
- type: "file",
1028
- style: { display: "none" }
1029
- }));
741
+ const HiddenFileInput = React.forwardRef(function InputWrapper(props, ref) {
742
+ return /* @__PURE__ */ React.createElement("input", { ...props, ref, type: "file", style: { display: "none" } });
1030
743
  });
1031
- const FileTrigger = React__default["default"].forwardRef(function FileTriggerWrapper(props, ref) {
1032
- const _a = props, {
744
+ const FileTrigger = React.forwardRef(function FileTriggerWrapper(props, ref) {
745
+ const {
1033
746
  acceptedFileTypes,
1034
747
  allowsMultiple = false,
1035
748
  onSelect = () => null,
1036
749
  children,
1037
- isDisabled = false
1038
- } = _a, rest = __objRest$k(_a, [
1039
- "acceptedFileTypes",
1040
- "allowsMultiple",
1041
- "onSelect",
1042
- "children",
1043
- "isDisabled"
1044
- ]);
1045
- const inputRef = utils.useObjectRef(ref);
1046
- const domProps = utils.filterDOMProps(rest, { global: true });
1047
- return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(interactions.PressResponder, {
1048
- isDisabled,
1049
- onPress: () => {
1050
- var _a2;
1051
- if (inputRef.current) {
1052
- inputRef.current.value = "";
750
+ isDisabled = false,
751
+ ...rest
752
+ } = props;
753
+ const inputRef = useObjectRef.useObjectRef(ref);
754
+ const domProps = filterDOMProps.filterDOMProps(rest, { global: true });
755
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
756
+ PressResponder.PressResponder,
757
+ {
758
+ isDisabled,
759
+ onPress: () => {
760
+ if (inputRef.current) {
761
+ inputRef.current.value = "";
762
+ }
763
+ inputRef.current?.click();
1053
764
  }
1054
- (_a2 = inputRef.current) == null ? void 0 : _a2.click();
1055
- }
1056
- }, children), /* @__PURE__ */ React__default["default"].createElement(HiddenFileInput, __spreadProps$l(__spreadValues$m({}, domProps), {
1057
- disabled: isDisabled,
1058
- ref: inputRef,
1059
- accept: acceptedFileTypes == null ? void 0 : acceptedFileTypes.toString(),
1060
- onChange: (e) => onSelect == null ? void 0 : onSelect(e.target.files),
1061
- multiple: allowsMultiple
1062
- })));
765
+ },
766
+ children
767
+ ), /* @__PURE__ */ React.createElement(
768
+ HiddenFileInput,
769
+ {
770
+ ...domProps,
771
+ disabled: isDisabled,
772
+ ref: inputRef,
773
+ accept: acceptedFileTypes?.toString(),
774
+ onChange: (e) => onSelect?.(e.target.files),
775
+ multiple: allowsMultiple
776
+ }
777
+ ));
1063
778
  });
1064
779
 
1065
780
  const convertFileListToFileDropItems = (fileList) => {
@@ -1132,39 +847,8 @@ var intlMessages$2 = {
1132
847
  "sv-SE": se$2
1133
848
  };
1134
849
 
1135
- var __defProp$l = Object.defineProperty;
1136
- var __defProps$k = Object.defineProperties;
1137
- var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
1138
- var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
1139
- var __hasOwnProp$l = Object.prototype.hasOwnProperty;
1140
- var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
1141
- var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1142
- var __spreadValues$l = (a, b) => {
1143
- for (var prop in b || (b = {}))
1144
- if (__hasOwnProp$l.call(b, prop))
1145
- __defNormalProp$l(a, prop, b[prop]);
1146
- if (__getOwnPropSymbols$l)
1147
- for (var prop of __getOwnPropSymbols$l(b)) {
1148
- if (__propIsEnum$l.call(b, prop))
1149
- __defNormalProp$l(a, prop, b[prop]);
1150
- }
1151
- return a;
1152
- };
1153
- var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
1154
- var __objRest$j = (source, exclude) => {
1155
- var target = {};
1156
- for (var prop in source)
1157
- if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)
1158
- target[prop] = source[prop];
1159
- if (source != null && __getOwnPropSymbols$l)
1160
- for (var prop of __getOwnPropSymbols$l(source)) {
1161
- if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))
1162
- target[prop] = source[prop];
1163
- }
1164
- return target;
1165
- };
1166
- const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapper(props, forwardedRef) {
1167
- const _a = props, {
850
+ const FileDropzone = React.forwardRef(function DropzoneWrapper(props, forwardedRef) {
851
+ const {
1168
852
  isDisabled = false,
1169
853
  hasError,
1170
854
  renderInstruction,
@@ -1172,32 +856,28 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
1172
856
  acceptedFileTypes,
1173
857
  allowsMultiple,
1174
858
  onDrop = () => null,
1175
- getDropOperation = () => "copy"
1176
- } = _a, otherProps = __objRest$j(_a, [
1177
- "isDisabled",
1178
- "hasError",
1179
- "renderInstruction",
1180
- "onFileSelectOpen",
1181
- "acceptedFileTypes",
1182
- "allowsMultiple",
1183
- "onDrop",
1184
- "getDropOperation"
1185
- ]);
1186
- const id = utils.useId();
859
+ getDropOperation = () => "copy",
860
+ ...otherProps
861
+ } = props;
862
+ const id = useId.useId();
1187
863
  const paragraphId = props["aria-label"] ? void 0 : id;
1188
864
  const format = i18n.useMessageFormatter(intlMessages$2);
1189
- const pressableRef = utils.useObjectRef(forwardedRef);
1190
- const { hoverProps, isHovered } = interactions.useHover({ isDisabled });
865
+ const pressableRef = useObjectRef.useObjectRef(forwardedRef);
866
+ const { hoverProps, isHovered } = useHover.useHover({ isDisabled });
1191
867
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1192
- const { dropProps, isDropTarget: isDropping } = dnd.useDrop(__spreadProps$k(__spreadValues$l({}, props), {
868
+ const { dropProps, isDropTarget: isDropping } = useDrop.useDrop({
869
+ ...props,
1193
870
  ref: pressableRef,
1194
871
  hasDropButton: true,
1195
872
  isDisabled,
1196
873
  getDropOperation
1197
- }));
1198
- const { buttonProps, isPressed } = sapphireReact.useButton({ elementType: "div" }, pressableRef);
1199
- const { focusProps, isFocusVisible } = focus.useFocusRing();
1200
- const { clipboardProps } = dnd.useClipboard({
874
+ });
875
+ const { buttonProps, isPressed } = sapphireReact.useButton(
876
+ { elementType: "div" },
877
+ pressableRef
878
+ );
879
+ const { focusProps, isFocusVisible } = useFocusRing.useFocusRing();
880
+ const { clipboardProps } = useClipboard.useClipboard({
1201
881
  isDisabled,
1202
882
  onPaste: (items) => onDrop({
1203
883
  type: "drop",
@@ -1217,340 +897,241 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
1217
897
  dropOperation: "copy"
1218
898
  });
1219
899
  };
1220
- return /* @__PURE__ */ React__default["default"].createElement(FileTrigger, {
1221
- acceptedFileTypes,
1222
- allowsMultiple,
1223
- onSelect: onFileTriggerSelect,
1224
- isDisabled
1225
- }, /* @__PURE__ */ React__default["default"].createElement(interactions.Pressable, {
1226
- ref: pressableRef,
1227
- onPress: onFileSelectOpen
1228
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$k(__spreadValues$l(__spreadValues$l({}, utils.mergeProps(dropProps, hoverProps, clipboardProps, focusProps, buttonProps)), utils.filterDOMProps(otherProps, { global: true })), {
1229
- style: __spreadValues$l({}, styleProps.style),
1230
- className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone"], styles__default$3["default"]["js-focus"], styles__default$3["default"]["js-hover"], {
1231
- [styles__default$3["default"]["is-hover"]]: isHovered && !isDropping,
1232
- [styles__default$3["default"]["is-active"]]: isPressed,
1233
- [styles__default$3["default"]["is-disabled"]]: isDisabled,
1234
- [styles__default$3["default"]["is-focus"]]: isFocusVisible,
1235
- [styles__default$3["default"]["sapphire-dropzone--dropping"]]: isDropping,
1236
- [styles__default$3["default"]["sapphire-dropzone--error"]]: hasError
1237
- }, styleProps.className),
1238
- "aria-label": ariaLabel,
1239
- "aria-invalid": hasError,
1240
- "aria-describedby": paragraphId
1241
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
1242
- className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__content"])
1243
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
1244
- className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__icon"])
1245
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1246
- size: "lg"
1247
- }, /* @__PURE__ */ React__default["default"].createElement(react.Upload, null))), /* @__PURE__ */ React__default["default"].createElement("div", {
1248
- className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__heading"])
1249
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
1250
- level: 6
1251
- }, isDropping ? format("dropzone-heading-dropping") : allowsMultiple ? format("dropzone-heading-default") : format("dropzone-heading-default-single"))), /* @__PURE__ */ React__default["default"].createElement("div", {
1252
- id: paragraphId,
1253
- className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__paragraph"])
1254
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
1255
- size: "sm",
1256
- color: "secondary"
1257
- }, renderInstruction(isDropping)))))));
900
+ return /* @__PURE__ */ React.createElement(
901
+ FileTrigger,
902
+ {
903
+ acceptedFileTypes,
904
+ allowsMultiple,
905
+ onSelect: onFileTriggerSelect,
906
+ isDisabled
907
+ },
908
+ /* @__PURE__ */ React.createElement(Pressable.Pressable, { ref: pressableRef, onPress: onFileSelectOpen }, /* @__PURE__ */ React.createElement(
909
+ "div",
910
+ {
911
+ ...mergeProps.mergeProps(
912
+ dropProps,
913
+ hoverProps,
914
+ clipboardProps,
915
+ focusProps,
916
+ buttonProps
917
+ ),
918
+ ...filterDOMProps.filterDOMProps(otherProps, { global: true }),
919
+ style: { ...styleProps.style },
920
+ className: clsx(
921
+ styles$3["sapphire-dropzone"],
922
+ styles$3["js-focus"],
923
+ styles$3["js-hover"],
924
+ {
925
+ [styles$3["is-hover"]]: isHovered && !isDropping,
926
+ [styles$3["is-active"]]: isPressed,
927
+ [styles$3["is-disabled"]]: isDisabled,
928
+ [styles$3["is-focus"]]: isFocusVisible,
929
+ [styles$3["sapphire-dropzone--dropping"]]: isDropping,
930
+ [styles$3["sapphire-dropzone--error"]]: hasError
931
+ },
932
+ styleProps.className
933
+ ),
934
+ "aria-label": ariaLabel,
935
+ "aria-invalid": hasError,
936
+ "aria-describedby": paragraphId
937
+ },
938
+ /* @__PURE__ */ React.createElement("div", { className: clsx(styles$3["sapphire-dropzone__content"]) }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles$3["sapphire-dropzone__icon"]) }, /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: "lg" }, /* @__PURE__ */ React.createElement(react.Upload, null))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles$3["sapphire-dropzone__heading"]) }, /* @__PURE__ */ React.createElement(sapphireReact.Typography.Heading, { level: 6 }, isDropping ? format("dropzone-heading-dropping") : allowsMultiple ? format("dropzone-heading-default") : format("dropzone-heading-default-single"))), /* @__PURE__ */ React.createElement(
939
+ "div",
940
+ {
941
+ id: paragraphId,
942
+ className: clsx(styles$3["sapphire-dropzone__paragraph"])
943
+ },
944
+ /* @__PURE__ */ React.createElement(sapphireReact.Typography.Body, { size: "sm", color: "secondary" }, renderInstruction(isDropping))
945
+ ))
946
+ ))
947
+ );
1258
948
  });
1259
949
 
1260
- var __defProp$k = Object.defineProperty;
1261
- var __defProps$j = Object.defineProperties;
1262
- var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
1263
- var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
1264
- var __hasOwnProp$k = Object.prototype.hasOwnProperty;
1265
- var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
1266
- var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1267
- var __spreadValues$k = (a, b) => {
1268
- for (var prop in b || (b = {}))
1269
- if (__hasOwnProp$k.call(b, prop))
1270
- __defNormalProp$k(a, prop, b[prop]);
1271
- if (__getOwnPropSymbols$k)
1272
- for (var prop of __getOwnPropSymbols$k(b)) {
1273
- if (__propIsEnum$k.call(b, prop))
1274
- __defNormalProp$k(a, prop, b[prop]);
1275
- }
1276
- return a;
1277
- };
1278
- var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
1279
- var __objRest$i = (source, exclude) => {
1280
- var target = {};
1281
- for (var prop in source)
1282
- if (__hasOwnProp$k.call(source, prop) && exclude.indexOf(prop) < 0)
1283
- target[prop] = source[prop];
1284
- if (source != null && __getOwnPropSymbols$k)
1285
- for (var prop of __getOwnPropSymbols$k(source)) {
1286
- if (exclude.indexOf(prop) < 0 && __propIsEnum$k.call(source, prop))
1287
- target[prop] = source[prop];
1288
- }
1289
- return target;
1290
- };
1291
- function FilterDropdown(_a) {
1292
- var _b = _a, {
1293
- children,
1294
- label,
1295
- value,
1296
- isDisabled = false,
1297
- isApplyDisabled = false,
1298
- isClearDisabled,
1299
- isOpen: isOpenProp,
1300
- applyButtonLabel = "Apply",
1301
- clearButtonLabel = "Clear",
1302
- hideClearButton = false,
1303
- defaultOpen = false,
1304
- hasApplyButton = false,
1305
- noMaxWidth,
1306
- onApply,
1307
- onClear,
1308
- onOpenChange,
1309
- buttonSize = "md"
1310
- } = _b, props = __objRest$i(_b, [
1311
- "children",
1312
- "label",
1313
- "value",
1314
- "isDisabled",
1315
- "isApplyDisabled",
1316
- "isClearDisabled",
1317
- "isOpen",
1318
- "applyButtonLabel",
1319
- "clearButtonLabel",
1320
- "hideClearButton",
1321
- "defaultOpen",
1322
- "hasApplyButton",
1323
- "noMaxWidth",
1324
- "onApply",
1325
- "onClear",
1326
- "onOpenChange",
1327
- "buttonSize"
1328
- ]);
950
+ function FilterDropdown({
951
+ children,
952
+ label,
953
+ value,
954
+ isDisabled = false,
955
+ isApplyDisabled = false,
956
+ isClearDisabled,
957
+ isOpen: isOpenProp,
958
+ applyButtonLabel = "Apply",
959
+ clearButtonLabel = "Clear",
960
+ hideClearButton = false,
961
+ defaultOpen = false,
962
+ hasApplyButton = false,
963
+ noMaxWidth,
964
+ onApply,
965
+ onClear,
966
+ onOpenChange,
967
+ buttonSize = "md",
968
+ ...props
969
+ }) {
1329
970
  const triggerRef = React.useRef(null);
1330
971
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1331
- const [isOpen, setIsOpen] = utils$2.useControlledState(isOpenProp, defaultOpen, utils.useEffectEvent(onOpenChange));
972
+ const [isOpen, setIsOpen] = useControlledState.useControlledState(
973
+ isOpenProp,
974
+ defaultOpen,
975
+ useEffectEvent.useEffectEvent(onOpenChange)
976
+ );
1332
977
  const hasValue = value != null && value !== "";
1333
978
  const close = () => setIsOpen(false);
1334
979
  const onSubmit = (e) => {
1335
- var _a2;
1336
980
  e.preventDefault();
1337
- onApply == null ? void 0 : onApply();
981
+ onApply?.();
1338
982
  close();
1339
- (_a2 = triggerRef.current) == null ? void 0 : _a2.focus();
1340
983
  };
1341
- const applyButton = /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
1342
- type: "submit",
1343
- size: buttonSize,
1344
- excludeFromTabOrder: !hasApplyButton,
1345
- isDisabled: isApplyDisabled
1346
- }, applyButtonLabel);
1347
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.PopoverTrigger, {
1348
- ref: triggerRef,
1349
- placement: "bottom left",
1350
- isOpen,
1351
- onOpenChange: setIsOpen,
1352
- noMaxWidth,
1353
- noPadding: true,
1354
- popoverContent: /* @__PURE__ */ React__default["default"].createElement("form", __spreadProps$j(__spreadValues$k({}, utils.filterDOMProps(props, { global: true })), {
1355
- onSubmit,
1356
- className: clsx__default["default"](styles__default$4["default"]["sapphire-filter-dropdown"], styleProps.className),
1357
- style: __spreadValues$k({}, styleProps.style)
1358
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
1359
- className: styles__default$4["default"]["sapphire-filter-dropdown__body"]
1360
- }, children), /* @__PURE__ */ React__default["default"].createElement("div", {
1361
- className: styles__default$4["default"]["sapphire-filter-dropdown__footer"]
1362
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ButtonGroup, {
1363
- align: "right"
1364
- }, !hideClearButton && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
984
+ const applyButton = /* @__PURE__ */ React.createElement(
985
+ sapphireReact.Button,
986
+ {
987
+ type: "submit",
1365
988
  size: buttonSize,
1366
- variant: "text",
1367
- onPress: () => {
1368
- close();
1369
- onClear == null ? void 0 : onClear();
989
+ excludeFromTabOrder: !hasApplyButton,
990
+ isDisabled: isApplyDisabled
991
+ },
992
+ applyButtonLabel
993
+ );
994
+ return /* @__PURE__ */ React.createElement(
995
+ sapphireReact.PopoverTrigger,
996
+ {
997
+ ref: triggerRef,
998
+ placement: "bottom left",
999
+ isOpen,
1000
+ onOpenChange: setIsOpen,
1001
+ noMaxWidth,
1002
+ noPadding: true,
1003
+ popoverContent: /* @__PURE__ */ React.createElement(
1004
+ "form",
1005
+ {
1006
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
1007
+ onSubmit,
1008
+ className: clsx(
1009
+ styles$4["sapphire-filter-dropdown"],
1010
+ styleProps.className
1011
+ ),
1012
+ style: { ...styleProps.style }
1013
+ },
1014
+ /* @__PURE__ */ React.createElement("div", { className: styles$4["sapphire-filter-dropdown__body"] }, children),
1015
+ /* @__PURE__ */ React.createElement("div", { className: styles$4["sapphire-filter-dropdown__footer"] }, /* @__PURE__ */ React.createElement(sapphireReact.ButtonGroup, { align: "right" }, !hideClearButton && /* @__PURE__ */ React.createElement(
1016
+ sapphireReact.Button,
1017
+ {
1018
+ size: buttonSize,
1019
+ variant: "text",
1020
+ onPress: () => {
1021
+ close();
1022
+ onClear?.();
1023
+ },
1024
+ isDisabled: isClearDisabled ?? !hasValue
1025
+ },
1026
+ clearButtonLabel
1027
+ ), hasApplyButton ? applyButton : (
1028
+ // The following is necessary to have the form submitted on "Enter", if there is more than one field
1029
+ /* @__PURE__ */ React.createElement(VisuallyHidden.VisuallyHidden, null, applyButton)
1030
+ )))
1031
+ )
1032
+ },
1033
+ /* @__PURE__ */ React.createElement(
1034
+ sapphireReact.ToggleButton,
1035
+ {
1036
+ icon: isOpen ? /* @__PURE__ */ React.createElement(react.ChevronUp, null) : /* @__PURE__ */ React.createElement(react.ChevronDown, null),
1037
+ iconAlign: "right",
1038
+ isSelected: hasValue,
1039
+ isDisabled,
1040
+ size: buttonSize
1370
1041
  },
1371
- isDisabled: isClearDisabled != null ? isClearDisabled : !hasValue
1372
- }, clearButtonLabel), hasApplyButton ? applyButton : /* @__PURE__ */ React__default["default"].createElement(visuallyHidden.VisuallyHidden, null, applyButton))))
1373
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ToggleButton, {
1374
- icon: isOpen ? /* @__PURE__ */ React__default["default"].createElement(react.ChevronUp, null) : /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null),
1375
- iconAlign: "right",
1376
- isSelected: hasValue,
1377
- isDisabled,
1378
- size: buttonSize
1379
- }, label, value ? ": " : "", value));
1042
+ label,
1043
+ value ? ": " : "",
1044
+ value
1045
+ )
1046
+ );
1380
1047
  }
1381
1048
 
1382
- var __defProp$j = Object.defineProperty;
1383
- var __defProps$i = Object.defineProperties;
1384
- var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
1385
- var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1386
- var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1387
- var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1388
- var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1389
- var __spreadValues$j = (a, b) => {
1390
- for (var prop in b || (b = {}))
1391
- if (__hasOwnProp$j.call(b, prop))
1392
- __defNormalProp$j(a, prop, b[prop]);
1393
- if (__getOwnPropSymbols$j)
1394
- for (var prop of __getOwnPropSymbols$j(b)) {
1395
- if (__propIsEnum$j.call(b, prop))
1396
- __defNormalProp$j(a, prop, b[prop]);
1397
- }
1398
- return a;
1399
- };
1400
- var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
1401
- var __objRest$h = (source, exclude) => {
1402
- var target = {};
1403
- for (var prop in source)
1404
- if (__hasOwnProp$j.call(source, prop) && exclude.indexOf(prop) < 0)
1405
- target[prop] = source[prop];
1406
- if (source != null && __getOwnPropSymbols$j)
1407
- for (var prop of __getOwnPropSymbols$j(source)) {
1408
- if (exclude.indexOf(prop) < 0 && __propIsEnum$j.call(source, prop))
1409
- target[prop] = source[prop];
1410
- }
1411
- return target;
1412
- };
1413
1049
  function SearchableSelectFilter(props) {
1414
- var _b, _c;
1415
- const _a = props, { searchField, listBox, size = "md" } = _a, otherProps = __objRest$h(_a, ["searchField", "listBox", "size"]);
1050
+ const { searchField, listBox, size = "md", ...otherProps } = props;
1416
1051
  const searchFieldRef = React.useRef(null);
1417
1052
  const searchFieldProps = searchField.props;
1418
1053
  const listBoxProps = listBox.props;
1419
- const [searchQuery, setSearchQuery] = utils$2.useControlledState(searchFieldProps == null ? void 0 : searchFieldProps.value, "", searchFieldProps.onChange);
1420
- if (listBoxProps.connectedInputRef && typeof process !== "undefined" && ((_b = process.env) == null ? void 0 : _b.NODE_ENV) === "development") {
1421
- console.warn("The connectedInputRef prop on the ListBox in the SearchableSelectFilter component is not needed and will be ignored. The connectedInputRef is set automatically (to the passed SearchField) and should not be set manually.");
1054
+ const [searchQuery, setSearchQuery] = useControlledState.useControlledState(
1055
+ searchFieldProps?.value,
1056
+ "",
1057
+ searchFieldProps.onChange
1058
+ );
1059
+ if (listBoxProps.connectedInputRef && typeof process !== "undefined" && process.env?.NODE_ENV === "development") {
1060
+ console.warn(
1061
+ "The connectedInputRef prop on the ListBox in the SearchableSelectFilter component is not needed and will be ignored. The connectedInputRef is set automatically (to the passed SearchField) and should not be set manually."
1062
+ );
1422
1063
  }
1423
1064
  const hasSelection = listBoxProps.selectedKeys === "all" || Array.from(listBoxProps.selectedKeys || []).length > 0;
1424
- return /* @__PURE__ */ React__default["default"].createElement(FilterDropdown, __spreadProps$i(__spreadValues$j({}, otherProps), {
1425
- noMaxWidth: (_c = otherProps.noMaxWidth) != null ? _c : true,
1426
- buttonSize: size,
1427
- hasApplyButton: Boolean(otherProps.onApply),
1428
- isClearDisabled: otherProps.isClearDisabled || !hasSelection && !otherProps.value
1429
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Flex, {
1430
- flexDirection: "column",
1431
- height: "100%"
1432
- }, React.cloneElement(searchField, {
1433
- size: "md",
1434
- value: searchFieldProps.value || searchQuery,
1435
- inputRef: utils.mergeRefs(searchFieldRef, searchFieldProps.inputRef),
1436
- width: searchFieldProps.width || "100%",
1437
- marginBottom: searchFieldProps.marginBottom || sapphireReact.tokens.size.spacingSm,
1438
- onChange: setSearchQuery
1439
- }), React.cloneElement(listBox, {
1440
- connectedInputRef: searchFieldRef,
1441
- selectionMode: listBoxProps.selectionMode || "multiple",
1442
- marginX: `calc(${sapphireReact.tokens.size.spacingContainerHorizontalSm.value} * -1)`,
1443
- hasScrollDividers: true,
1444
- filter: "filter" in listBoxProps ? listBoxProps.filter : (textValue) => textValue.toLowerCase().includes(searchQuery.toLowerCase())
1445
- })));
1065
+ return /* @__PURE__ */ React.createElement(
1066
+ FilterDropdown,
1067
+ {
1068
+ ...otherProps,
1069
+ noMaxWidth: otherProps.noMaxWidth ?? true,
1070
+ buttonSize: size,
1071
+ hasApplyButton: Boolean(otherProps.onApply),
1072
+ isClearDisabled: otherProps.isClearDisabled || !hasSelection && !otherProps.value
1073
+ },
1074
+ /* @__PURE__ */ React.createElement(sapphireReact.Flex, { flexDirection: "column", height: "100%" }, React.cloneElement(searchField, {
1075
+ size: "md",
1076
+ value: searchFieldProps.value || searchQuery,
1077
+ inputRef: mergeRefs.mergeRefs(searchFieldRef, searchFieldProps.inputRef),
1078
+ width: searchFieldProps.width || "100%",
1079
+ marginBottom: searchFieldProps.marginBottom || sapphireReact.tokens.size.spacingSm,
1080
+ onChange: setSearchQuery
1081
+ }), React.cloneElement(listBox, {
1082
+ connectedInputRef: searchFieldRef,
1083
+ selectionMode: listBoxProps.selectionMode || "multiple",
1084
+ marginX: `calc(${sapphireReact.tokens.size.spacingContainerHorizontalSm.value} * -1)`,
1085
+ hasScrollDividers: true,
1086
+ filter: (
1087
+ // This is a way to also allow opting out of the internal filter with filter={undefined}
1088
+ // without us having to allow for more values on the ListBox filter prop
1089
+ "filter" in listBoxProps ? listBoxProps.filter : (textValue) => textValue.toLowerCase().includes(searchQuery.toLowerCase())
1090
+ )
1091
+ }))
1092
+ );
1446
1093
  }
1447
1094
 
1448
- var __defProp$i = Object.defineProperty;
1449
- var __defProps$h = Object.defineProperties;
1450
- var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
1451
- var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
1452
- var __hasOwnProp$i = Object.prototype.hasOwnProperty;
1453
- var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
1454
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1455
- var __spreadValues$i = (a, b) => {
1456
- for (var prop in b || (b = {}))
1457
- if (__hasOwnProp$i.call(b, prop))
1458
- __defNormalProp$i(a, prop, b[prop]);
1459
- if (__getOwnPropSymbols$i)
1460
- for (var prop of __getOwnPropSymbols$i(b)) {
1461
- if (__propIsEnum$i.call(b, prop))
1462
- __defNormalProp$i(a, prop, b[prop]);
1463
- }
1464
- return a;
1465
- };
1466
- var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
1467
- var __objRest$g = (source, exclude) => {
1468
- var target = {};
1469
- for (var prop in source)
1470
- if (__hasOwnProp$i.call(source, prop) && exclude.indexOf(prop) < 0)
1471
- target[prop] = source[prop];
1472
- if (source != null && __getOwnPropSymbols$i)
1473
- for (var prop of __getOwnPropSymbols$i(source)) {
1474
- if (exclude.indexOf(prop) < 0 && __propIsEnum$i.call(source, prop))
1475
- target[prop] = source[prop];
1476
- }
1477
- return target;
1478
- };
1479
- const Flag = React__default["default"].forwardRef(function Flag2(_a, ref) {
1480
- var _b = _a, { size = "lg", rounded, "aria-label": ariaLabel } = _b, props = __objRest$g(_b, ["size", "rounded", "aria-label"]);
1095
+ const Flag = React.forwardRef(function Flag2({ size = "lg", rounded, "aria-label": ariaLabel, ...props }, ref) {
1481
1096
  sapphireReact.useThemeCheck();
1482
1097
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1483
- return React__default["default"].cloneElement(utils$1.getWrappedElement(props.children), __spreadProps$h(__spreadValues$i({
1098
+ return React.cloneElement(utils.getWrappedElement(props.children), {
1484
1099
  ref,
1485
- role: "img"
1486
- }, ariaLabel ? { "aria-label": ariaLabel } : { "aria-hidden": true }), {
1487
- className: clsx__default["default"](styles__default$5["default"]["sapphire-flag"], styleProps.className, {
1488
- [styles__default$5["default"]["sapphire-flag--xs"]]: size === "xs",
1489
- [styles__default$5["default"]["sapphire-flag--sm"]]: size === "sm",
1490
- [styles__default$5["default"]["sapphire-flag--md"]]: size === "md",
1491
- [styles__default$5["default"]["sapphire-flag--lg"]]: size === "lg",
1492
- [styles__default$5["default"]["sapphire-flag--xl"]]: size === "xl",
1493
- [styles__default$5["default"]["sapphire-flag--rounded"]]: rounded
1100
+ role: "img",
1101
+ ...ariaLabel ? { "aria-label": ariaLabel } : { "aria-hidden": true },
1102
+ className: clsx(styles$5["sapphire-flag"], styleProps.className, {
1103
+ [styles$5["sapphire-flag--xs"]]: size === "xs",
1104
+ [styles$5["sapphire-flag--sm"]]: size === "sm",
1105
+ [styles$5["sapphire-flag--md"]]: size === "md",
1106
+ [styles$5["sapphire-flag--lg"]]: size === "lg",
1107
+ [styles$5["sapphire-flag--xl"]]: size === "xl",
1108
+ [styles$5["sapphire-flag--rounded"]]: rounded
1494
1109
  }),
1495
1110
  style: styleProps.style
1496
- }));
1111
+ });
1497
1112
  });
1498
1113
 
1499
- var __defProp$h = Object.defineProperty;
1500
- var __defProps$g = Object.defineProperties;
1501
- var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
1502
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
1503
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
1504
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
1505
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1506
- var __spreadValues$h = (a, b) => {
1507
- for (var prop in b || (b = {}))
1508
- if (__hasOwnProp$h.call(b, prop))
1509
- __defNormalProp$h(a, prop, b[prop]);
1510
- if (__getOwnPropSymbols$h)
1511
- for (var prop of __getOwnPropSymbols$h(b)) {
1512
- if (__propIsEnum$h.call(b, prop))
1513
- __defNormalProp$h(a, prop, b[prop]);
1514
- }
1515
- return a;
1516
- };
1517
- var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
1518
- var __objRest$f = (source, exclude) => {
1519
- var target = {};
1520
- for (var prop in source)
1521
- if (__hasOwnProp$h.call(source, prop) && exclude.indexOf(prop) < 0)
1522
- target[prop] = source[prop];
1523
- if (source != null && __getOwnPropSymbols$h)
1524
- for (var prop of __getOwnPropSymbols$h(source)) {
1525
- if (exclude.indexOf(prop) < 0 && __propIsEnum$h.call(source, prop))
1526
- target[prop] = source[prop];
1527
- }
1528
- return target;
1529
- };
1530
- function LabeledValue(_a) {
1531
- var _b = _a, {
1532
- children,
1533
- contextualHelp,
1534
- label: label$1,
1535
- labelPlacement = "above",
1536
- size = "lg"
1537
- } = _b, otherProps = __objRest$f(_b, [
1538
- "children",
1539
- "contextualHelp",
1540
- "label",
1541
- "labelPlacement",
1542
- "size"
1543
- ]);
1114
+ function LabeledValue({
1115
+ children,
1116
+ contextualHelp,
1117
+ label,
1118
+ labelPlacement = "above",
1119
+ size = "lg",
1120
+ ...otherProps
1121
+ }) {
1544
1122
  sapphireReact.useThemeCheck();
1545
- const { fieldProps } = label.useField({ label: label$1 });
1546
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$g(__spreadValues$h({}, utils.mergeProps(fieldProps, otherProps)), {
1547
- labelPlacement,
1548
- size,
1549
- noDefaultWidth: true
1550
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, {
1551
- contextualHelp,
1552
- size
1553
- }, label$1)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, children));
1123
+ const { fieldProps } = useField.useField({ label });
1124
+ return /* @__PURE__ */ React.createElement(
1125
+ sapphireReact.Field,
1126
+ {
1127
+ ...mergeProps.mergeProps(fieldProps, otherProps),
1128
+ labelPlacement,
1129
+ size,
1130
+ noDefaultWidth: true
1131
+ },
1132
+ /* @__PURE__ */ React.createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React.createElement(sapphireReact.Label, { contextualHelp, size }, label)),
1133
+ /* @__PURE__ */ React.createElement(sapphireReact.Field.Control, null, children)
1134
+ );
1554
1135
  }
1555
1136
 
1556
1137
  var increment$6 = "øge";
@@ -1612,60 +1193,38 @@ var intlMessages$1 = {
1612
1193
  "sv-SE": se$1
1613
1194
  };
1614
1195
 
1615
- var __defProp$g = Object.defineProperty;
1616
- var __defProps$f = Object.defineProperties;
1617
- var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
1618
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
1619
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
1620
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
1621
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1622
- var __spreadValues$g = (a, b) => {
1623
- for (var prop in b || (b = {}))
1624
- if (__hasOwnProp$g.call(b, prop))
1625
- __defNormalProp$g(a, prop, b[prop]);
1626
- if (__getOwnPropSymbols$g)
1627
- for (var prop of __getOwnPropSymbols$g(b)) {
1628
- if (__propIsEnum$g.call(b, prop))
1629
- __defNormalProp$g(a, prop, b[prop]);
1630
- }
1631
- return a;
1632
- };
1633
- var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
1634
- var __objRest$e = (source, exclude) => {
1635
- var target = {};
1636
- for (var prop in source)
1637
- if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)
1638
- target[prop] = source[prop];
1639
- if (source != null && __getOwnPropSymbols$g)
1640
- for (var prop of __getOwnPropSymbols$g(source)) {
1641
- if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))
1642
- target[prop] = source[prop];
1643
- }
1644
- return target;
1645
- };
1646
- const StepperButton = (_a) => {
1647
- var _b = _a, {
1648
- variant,
1649
- size
1650
- } = _b, props = __objRest$e(_b, [
1651
- "variant",
1652
- "size"
1653
- ]);
1196
+ const StepperButton = ({
1197
+ variant,
1198
+ size,
1199
+ ...props
1200
+ }) => {
1654
1201
  const ref = React.useRef(null);
1655
1202
  const { buttonProps, isPressed } = sapphireReact.useButton(props, ref);
1656
- const { hoverProps, isHovered } = interactions.useHover({ isDisabled: props.isDisabled });
1657
- const { focusProps, isFocusVisible } = focus.useFocusRing();
1658
- return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$f(__spreadValues$g({}, utils.mergeProps(buttonProps, hoverProps, focusProps, utils.filterDOMProps(props, { global: true }))), {
1659
- tabIndex: 0,
1660
- ref,
1661
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__stepper-button"], textFieldStyles__default["default"]["js-hover"], {
1662
- [textFieldStyles__default["default"]["is-active"]]: isPressed,
1663
- [textFieldStyles__default["default"]["is-hover"]]: isHovered,
1664
- [textFieldStyles__default["default"]["is-focus"]]: isFocusVisible
1665
- })
1666
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1667
- size: size === "lg" ? "md" : "sm"
1668
- }, variant === "increment" ? /* @__PURE__ */ React__default["default"].createElement(react.Add, null) : /* @__PURE__ */ React__default["default"].createElement(react.Subtract, null)));
1203
+ const { hoverProps, isHovered } = useHover.useHover({ isDisabled: props.isDisabled });
1204
+ const { focusProps, isFocusVisible } = useFocusRing.useFocusRing();
1205
+ return /* @__PURE__ */ React.createElement(
1206
+ "button",
1207
+ {
1208
+ ...mergeProps.mergeProps(
1209
+ buttonProps,
1210
+ hoverProps,
1211
+ focusProps,
1212
+ filterDOMProps.filterDOMProps(props, { global: true })
1213
+ ),
1214
+ tabIndex: 0,
1215
+ ref,
1216
+ className: clsx(
1217
+ textFieldStyles["sapphire-text-field__stepper-button"],
1218
+ textFieldStyles["js-hover"],
1219
+ {
1220
+ [textFieldStyles["is-active"]]: isPressed,
1221
+ [textFieldStyles["is-hover"]]: isHovered,
1222
+ [textFieldStyles["is-focus"]]: isFocusVisible
1223
+ }
1224
+ )
1225
+ },
1226
+ /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: size === "lg" ? "md" : "sm" }, variant === "increment" ? /* @__PURE__ */ React.createElement(react.Add, null) : /* @__PURE__ */ React.createElement(react.Subtract, null))
1227
+ );
1669
1228
  };
1670
1229
 
1671
1230
  function useAutofillStyle(inputRef) {
@@ -1686,20 +1245,18 @@ function useAutofillStyle(inputRef) {
1686
1245
  }
1687
1246
 
1688
1247
  const getSeparators = (formatter) => {
1689
- var _a, _b, _c, _d, _e;
1690
1248
  const parts = formatter.formatToParts(1000.1);
1691
- const groupSeparator = (_b = (_a = parts.find((p) => p.type === "group")) == null ? void 0 : _a.value) != null ? _b : ",";
1692
- let decimalSeparator = (_c = parts.find((p) => p.type === "decimal")) == null ? void 0 : _c.value;
1249
+ const groupSeparator = parts.find((p) => p.type === "group")?.value ?? ",";
1250
+ let decimalSeparator = parts.find((p) => p.type === "decimal")?.value;
1693
1251
  if (!decimalSeparator) {
1694
1252
  const locale = formatter.resolvedOptions().locale;
1695
1253
  const plainFormatter = new Intl.NumberFormat(locale);
1696
- decimalSeparator = (_e = (_d = plainFormatter.formatToParts(1.1).find((p) => p.type === "decimal")) == null ? void 0 : _d.value) != null ? _e : ".";
1254
+ decimalSeparator = plainFormatter.formatToParts(1.1).find((p) => p.type === "decimal")?.value ?? ".";
1697
1255
  }
1698
1256
  return { groupSeparator, decimalSeparator };
1699
1257
  };
1700
1258
  const trimSymbol = (value, symbol) => {
1701
- if (!symbol)
1702
- return value;
1259
+ if (!symbol) return value;
1703
1260
  if (value.startsWith(symbol)) {
1704
1261
  return value.slice(symbol.length).trimStart();
1705
1262
  } else if (value.endsWith(symbol)) {
@@ -1708,20 +1265,20 @@ const trimSymbol = (value, symbol) => {
1708
1265
  return value;
1709
1266
  };
1710
1267
  const parseNumericValue = (value, decimalSeparator, formatter) => {
1711
- if (!value || value === "-")
1712
- return null;
1713
- const cleaned = value.replace(new RegExp(`[^0-9${decimalSeparator}\\-]`, "g"), "");
1714
- if (!cleaned)
1715
- return null;
1268
+ if (!value || value === "-") return null;
1269
+ const cleaned = value.replace(
1270
+ new RegExp(`[^0-9${decimalSeparator}\\-]`, "g"),
1271
+ ""
1272
+ );
1273
+ if (!cleaned) return null;
1716
1274
  const hasLeadingMinus = cleaned.startsWith("-");
1717
1275
  const withoutMinus = cleaned.replace(/-/g, "");
1718
1276
  const normalized = hasLeadingMinus ? "-" + withoutMinus : withoutMinus;
1719
1277
  const parts = normalized.split(decimalSeparator);
1720
1278
  const withStandardDecimal = parts.length > 1 ? parts[0] + "." + parts.slice(1).join("") : normalized.replace(decimalSeparator, ".");
1721
1279
  let parsed = parseFloat(withStandardDecimal);
1722
- if (isNaN(parsed))
1723
- return null;
1724
- if ((formatter == null ? void 0 : formatter.resolvedOptions().style) === "percent") {
1280
+ if (isNaN(parsed)) return null;
1281
+ if (formatter?.resolvedOptions().style === "percent") {
1725
1282
  parsed /= 100;
1726
1283
  }
1727
1284
  return parsed;
@@ -1746,13 +1303,12 @@ const formatNumberString = (value, formatter, decimalSeparator, shouldStripSymbo
1746
1303
  const isSymbol = (type) => ["currency", "unit", "percentSign"].includes(type);
1747
1304
  const hasSymbolAt = (parts, start) => {
1748
1305
  const [first, second] = start ? [parts[0], parts[1]] : [parts[parts.length - 1], parts[parts.length - 2]];
1749
- return isSymbol(first == null ? void 0 : first.type) || (first == null ? void 0 : first.type) === "literal" && isSymbol(second == null ? void 0 : second.type);
1306
+ return isSymbol(first?.type) || first?.type === "literal" && isSymbol(second?.type);
1750
1307
  };
1751
1308
  const extractSymbol = (formatter, prefix, postfix) => {
1752
- var _a, _b;
1753
1309
  const parts = formatter.formatToParts(1000.1);
1754
- const extractedPrefix = hasSymbolAt(parts, true) ? ((_a = parts.find((part) => isSymbol(part.type))) == null ? void 0 : _a.value) || null : null;
1755
- const extractedPostfix = hasSymbolAt(parts, false) ? ((_b = [...parts].reverse().find((part) => isSymbol(part.type))) == null ? void 0 : _b.value) || null : null;
1310
+ const extractedPrefix = hasSymbolAt(parts, true) ? parts.find((part) => isSymbol(part.type))?.value || null : null;
1311
+ const extractedPostfix = hasSymbolAt(parts, false) ? [...parts].reverse().find((part) => isSymbol(part.type))?.value || null : null;
1756
1312
  return prefix !== void 0 || postfix !== void 0 ? {
1757
1313
  extractedPrefix: prefix,
1758
1314
  extractedPostfix: postfix,
@@ -1768,8 +1324,7 @@ const isDeleteOperation = (inputType) => {
1768
1324
  return inputType === "deleteContentBackward" || inputType === "deleteContentForward";
1769
1325
  };
1770
1326
  const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decimalSeparator, numericValue) => {
1771
- if (!newValue)
1772
- return 0;
1327
+ if (!newValue) return 0;
1773
1328
  const oldDecimalPos = oldValue.indexOf(decimalSeparator);
1774
1329
  const newDecimalPos = newValue.indexOf(decimalSeparator);
1775
1330
  if (numericValue === 0 && isDeleteOperation(inputType)) {
@@ -1778,8 +1333,7 @@ const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decim
1778
1333
  const countDigits = (str, start, end) => {
1779
1334
  let count = 0;
1780
1335
  for (let i = start; i < end; i++) {
1781
- if (/[0-9]/.test(str[i]))
1782
- count++;
1336
+ if (/[0-9]/.test(str[i])) count++;
1783
1337
  }
1784
1338
  return count;
1785
1339
  };
@@ -1787,7 +1341,11 @@ const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decim
1787
1341
  return newDecimalPos;
1788
1342
  }
1789
1343
  if (oldDecimalPos >= 0 && oldCursor > oldDecimalPos && newDecimalPos >= 0) {
1790
- const digitsBeforeCursor = countDigits(oldValue, oldDecimalPos + 1, oldCursor);
1344
+ const digitsBeforeCursor = countDigits(
1345
+ oldValue,
1346
+ oldDecimalPos + 1,
1347
+ oldCursor
1348
+ );
1791
1349
  let digitCount2 = 0;
1792
1350
  for (let i = newDecimalPos + 1; i < newValue.length; i++) {
1793
1351
  if (/[0-9]/.test(newValue[i]) && ++digitCount2 === digitsBeforeCursor) {
@@ -1798,12 +1356,15 @@ const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decim
1798
1356
  }
1799
1357
  const oldEnd = oldDecimalPos >= 0 ? oldDecimalPos : oldValue.length;
1800
1358
  const newEnd = newDecimalPos >= 0 ? newDecimalPos : newValue.length;
1801
- const intDigitsBeforeCursor = countDigits(oldValue, 0, Math.min(oldCursor, oldEnd));
1359
+ const intDigitsBeforeCursor = countDigits(
1360
+ oldValue,
1361
+ 0,
1362
+ Math.min(oldCursor, oldEnd)
1363
+ );
1802
1364
  if (intDigitsBeforeCursor === 0) {
1803
1365
  if (isDeleteOperation(inputType)) {
1804
1366
  for (let i = 0; i < newValue.length; i++) {
1805
- if (/[0-9]/.test(newValue[i]))
1806
- return i + 1;
1367
+ if (/[0-9]/.test(newValue[i])) return i + 1;
1807
1368
  }
1808
1369
  }
1809
1370
  return 0;
@@ -1819,9 +1380,12 @@ const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decim
1819
1380
 
1820
1381
  const escapeRegExp = (str) => str.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
1821
1382
  const getSuffix = (value, groupSeparator, decimalSeparator) => {
1822
- var _a;
1823
- const suffixReg = new RegExp(`\\d([^${escapeRegExp(groupSeparator)}${escapeRegExp(decimalSeparator)}0-9]+)`);
1824
- return (_a = value.match(suffixReg)) == null ? void 0 : _a[1];
1383
+ const suffixReg = new RegExp(
1384
+ `\\d([^${escapeRegExp(groupSeparator)}${escapeRegExp(
1385
+ decimalSeparator
1386
+ )}0-9]+)`
1387
+ );
1388
+ return value.match(suffixReg)?.[1];
1825
1389
  };
1826
1390
  function handleNumberFieldKeyDown({
1827
1391
  event,
@@ -1830,19 +1394,21 @@ function handleNumberFieldKeyDown({
1830
1394
  decimalSeparator,
1831
1395
  onOriginalKeyDown
1832
1396
  }) {
1833
- var _a;
1834
1397
  const { key } = event;
1835
1398
  const input = event.currentTarget;
1836
1399
  const { selectionStart, value } = input;
1837
1400
  if (selectionStart === null) {
1838
- onOriginalKeyDown == null ? void 0 : onOriginalKeyDown(event);
1401
+ onOriginalKeyDown?.(event);
1839
1402
  return;
1840
1403
  }
1841
1404
  if (/^[0-9]$/.test(key)) {
1842
1405
  const decimalPos = value.indexOf(decimalSeparator);
1843
1406
  if (selectionStart === 0) {
1844
1407
  const integerPart = decimalPos >= 0 ? value.slice(0, decimalPos) : value;
1845
- const cleanedInteger = integerPart.replace(new RegExp(escapeRegExp(groupSeparator), "g"), "");
1408
+ const cleanedInteger = integerPart.replace(
1409
+ new RegExp(escapeRegExp(groupSeparator), "g"),
1410
+ ""
1411
+ );
1846
1412
  if (cleanedInteger === "0") {
1847
1413
  event.preventDefault();
1848
1414
  const newValue = key + (decimalPos >= 0 ? value.slice(decimalPos) : "");
@@ -1929,10 +1495,10 @@ function handleNumberFieldKeyDown({
1929
1495
  const suffix = getSuffix(value, groupSeparator, decimalSeparator);
1930
1496
  if (suffix && selectionStart > value.length - suffix.length) {
1931
1497
  const suffixStartPos = value.length - suffix.length;
1932
- (_a = inputRef.current) == null ? void 0 : _a.setSelectionRange(suffixStartPos, suffixStartPos);
1498
+ inputRef.current?.setSelectionRange(suffixStartPos, suffixStartPos);
1933
1499
  }
1934
1500
  }
1935
- onOriginalKeyDown == null ? void 0 : onOriginalKeyDown(event);
1501
+ onOriginalKeyDown?.(event);
1936
1502
  }
1937
1503
 
1938
1504
  function useNumberFieldFormatting({
@@ -1945,19 +1511,28 @@ function useNumberFieldFormatting({
1945
1511
  onChange,
1946
1512
  autoFormat
1947
1513
  }) {
1948
- const { groupSeparator, decimalSeparator } = React.useMemo(() => getSeparators(formatter), [formatter]);
1514
+ const { groupSeparator, decimalSeparator } = React.useMemo(
1515
+ () => getSeparators(formatter),
1516
+ [formatter]
1517
+ );
1949
1518
  const [formattedValue, setFormattedValue] = React.useState("");
1950
- const symbolInfo = React.useMemo(() => extractSymbol(formatter, prefix, postfix), [formatter, prefix, postfix]);
1519
+ const symbolInfo = React.useMemo(
1520
+ () => extractSymbol(formatter, prefix, postfix),
1521
+ [formatter, prefix, postfix]
1522
+ );
1951
1523
  const { extractedPrefix, extractedPostfix, symbol } = symbolInfo;
1952
1524
  const cursorPositionRef = React.useRef(null);
1953
1525
  const displayValue = React.useMemo(() => {
1954
- const numericValue = parseNumericValue(inputValue, decimalSeparator, formatter);
1955
- if (numericValue === null)
1956
- return inputValue;
1526
+ const numericValue = parseNumericValue(
1527
+ inputValue,
1528
+ decimalSeparator,
1529
+ formatter
1530
+ );
1531
+ if (numericValue === null) return inputValue;
1957
1532
  try {
1958
1533
  const trimmedValue = trimSymbol(inputValue, symbol) || inputValue;
1959
1534
  return autoFormat ? formattedValue || trimmedValue : trimmedValue;
1960
- } catch (e) {
1535
+ } catch {
1961
1536
  return inputValue;
1962
1537
  }
1963
1538
  }, [
@@ -1970,49 +1545,74 @@ function useNumberFieldFormatting({
1970
1545
  ]);
1971
1546
  React.useLayoutEffect(() => {
1972
1547
  if (cursorPositionRef.current !== null && inputRef.current) {
1973
- inputRef.current.setSelectionRange(cursorPositionRef.current, cursorPositionRef.current);
1548
+ inputRef.current.setSelectionRange(
1549
+ cursorPositionRef.current,
1550
+ cursorPositionRef.current
1551
+ );
1974
1552
  cursorPositionRef.current = null;
1975
1553
  }
1976
1554
  }, [displayValue, inputRef]);
1977
- const handleInput = React.useCallback((e) => {
1978
- if (!autoFormat)
1979
- return;
1980
- const input = e.currentTarget;
1981
- const { value, selectionStart } = input;
1982
- const inputType = e.nativeEvent.inputType || "";
1983
- const shouldStrip = !!symbol;
1984
- const maxFractionDigits = formatter.resolvedOptions().maximumFractionDigits || 0;
1985
- const decimalIndex = value.indexOf(decimalSeparator);
1986
- if (decimalIndex !== -1 && selectionStart !== null) {
1987
- const decimalPart = value.slice(decimalIndex + 1).replace(new RegExp(`[^0-9]`, "g"), "");
1988
- const prevDecimalIndex = displayValue.indexOf(decimalSeparator);
1989
- const prevDecimalLength = prevDecimalIndex !== -1 ? displayValue.slice(prevDecimalIndex + 1).length : 0;
1990
- if (decimalPart.length > maxFractionDigits && selectionStart > decimalIndex + 1 + prevDecimalLength) {
1991
- e.preventDefault();
1992
- cursorPositionRef.current = decimalIndex + 1 + prevDecimalLength;
1993
- return;
1555
+ const handleInput = React.useCallback(
1556
+ (e) => {
1557
+ if (!autoFormat) return;
1558
+ const input = e.currentTarget;
1559
+ const { value, selectionStart } = input;
1560
+ const inputType = e.nativeEvent.inputType || "";
1561
+ const shouldStrip = !!symbol;
1562
+ const maxFractionDigits = formatter.resolvedOptions().maximumFractionDigits || 0;
1563
+ const decimalIndex = value.indexOf(decimalSeparator);
1564
+ if (decimalIndex !== -1 && selectionStart !== null) {
1565
+ const decimalPart = value.slice(decimalIndex + 1).replace(new RegExp(`[^0-9]`, "g"), "");
1566
+ const prevDecimalIndex = displayValue.indexOf(decimalSeparator);
1567
+ const prevDecimalLength = prevDecimalIndex !== -1 ? displayValue.slice(prevDecimalIndex + 1).length : 0;
1568
+ if (decimalPart.length > maxFractionDigits && selectionStart > decimalIndex + 1 + prevDecimalLength) {
1569
+ e.preventDefault();
1570
+ cursorPositionRef.current = decimalIndex + 1 + prevDecimalLength;
1571
+ return;
1572
+ }
1994
1573
  }
1995
- }
1996
- const formattedValue2 = formatNumberString(value, formatter, decimalSeparator, shouldStrip, symbol);
1997
- setFormattedValue(formattedValue2);
1998
- const numericValue = parseNumericValue(formattedValue2, decimalSeparator, formatter);
1999
- if (formattedValue2 !== value && formattedValue2 !== "" && selectionStart !== null) {
2000
- const newCursorPosition = calculateCursorPosition(value, formattedValue2, selectionStart, inputType, decimalSeparator, numericValue);
2001
- cursorPositionRef.current = newCursorPosition;
2002
- }
2003
- if (numericValue !== null) {
2004
- onChange == null ? void 0 : onChange(numericValue);
2005
- }
2006
- }, [formatter, decimalSeparator, symbol, autoFormat, displayValue, onChange]);
2007
- const handleKeyDown = React.useCallback((e) => {
2008
- handleNumberFieldKeyDown({
2009
- event: e,
2010
- inputRef,
2011
- groupSeparator,
2012
- decimalSeparator,
2013
- onOriginalKeyDown
2014
- });
2015
- }, [groupSeparator, decimalSeparator, inputRef, onOriginalKeyDown]);
1574
+ const formattedValue2 = formatNumberString(
1575
+ value,
1576
+ formatter,
1577
+ decimalSeparator,
1578
+ shouldStrip,
1579
+ symbol
1580
+ );
1581
+ setFormattedValue(formattedValue2);
1582
+ const numericValue = parseNumericValue(
1583
+ formattedValue2,
1584
+ decimalSeparator,
1585
+ formatter
1586
+ );
1587
+ if (formattedValue2 !== value && formattedValue2 !== "" && selectionStart !== null) {
1588
+ const newCursorPosition = calculateCursorPosition(
1589
+ value,
1590
+ formattedValue2,
1591
+ selectionStart,
1592
+ inputType,
1593
+ decimalSeparator,
1594
+ numericValue
1595
+ );
1596
+ cursorPositionRef.current = newCursorPosition;
1597
+ }
1598
+ if (numericValue !== null) {
1599
+ onChange?.(numericValue);
1600
+ }
1601
+ },
1602
+ [formatter, decimalSeparator, symbol, autoFormat, displayValue, onChange]
1603
+ );
1604
+ const handleKeyDown = React.useCallback(
1605
+ (e) => {
1606
+ handleNumberFieldKeyDown({
1607
+ event: e,
1608
+ inputRef,
1609
+ groupSeparator,
1610
+ decimalSeparator,
1611
+ onOriginalKeyDown
1612
+ });
1613
+ },
1614
+ [groupSeparator, decimalSeparator, inputRef, onOriginalKeyDown]
1615
+ );
2016
1616
  return {
2017
1617
  displayValue,
2018
1618
  extractedPrefix,
@@ -2022,83 +1622,25 @@ function useNumberFieldFormatting({
2022
1622
  };
2023
1623
  }
2024
1624
 
2025
- var __defProp$f = Object.defineProperty;
2026
- var __defProps$e = Object.defineProperties;
2027
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
2028
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
2029
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
2030
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
2031
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2032
- var __spreadValues$f = (a, b) => {
2033
- for (var prop in b || (b = {}))
2034
- if (__hasOwnProp$f.call(b, prop))
2035
- __defNormalProp$f(a, prop, b[prop]);
2036
- if (__getOwnPropSymbols$f)
2037
- for (var prop of __getOwnPropSymbols$f(b)) {
2038
- if (__propIsEnum$f.call(b, prop))
2039
- __defNormalProp$f(a, prop, b[prop]);
2040
- }
2041
- return a;
2042
- };
2043
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2044
- var __objRest$d = (source, exclude) => {
2045
- var target = {};
2046
- for (var prop in source)
2047
- if (__hasOwnProp$f.call(source, prop) && exclude.indexOf(prop) < 0)
2048
- target[prop] = source[prop];
2049
- if (source != null && __getOwnPropSymbols$f)
2050
- for (var prop of __getOwnPropSymbols$f(source)) {
2051
- if (exclude.indexOf(prop) < 0 && __propIsEnum$f.call(source, prop))
2052
- target[prop] = source[prop];
2053
- }
2054
- return target;
2055
- };
2056
- const useSapphireNumberField = (_a, ref) => {
2057
- var _b = _a, { error } = _b, numberFieldProps = __objRest$d(_b, ["error"]);
2058
- const { locale } = i18n.useLocale();
2059
- const numberFieldState = numberfield.useNumberFieldState(__spreadProps$e(__spreadValues$f({}, numberFieldProps), {
1625
+ const useSapphireNumberField = ({ error, ...numberFieldProps }, ref) => {
1626
+ const { locale } = I18nProvider.useLocale();
1627
+ const numberFieldState = useNumberFieldState.useNumberFieldState({
1628
+ ...numberFieldProps,
2060
1629
  locale
2061
- }));
2062
- const numberFieldAria = numberfield$1.useNumberField(__spreadProps$e(__spreadValues$f({}, numberFieldProps), {
2063
- validationState: error === false || error === void 0 ? void 0 : "invalid"
2064
- }), numberFieldState, ref);
2065
- return __spreadProps$e(__spreadValues$f({}, numberFieldAria), { state: numberFieldState });
2066
- };
2067
-
2068
- var __defProp$e = Object.defineProperty;
2069
- var __defProps$d = Object.defineProperties;
2070
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
2071
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
2072
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
2073
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
2074
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2075
- var __spreadValues$e = (a, b) => {
2076
- for (var prop in b || (b = {}))
2077
- if (__hasOwnProp$e.call(b, prop))
2078
- __defNormalProp$e(a, prop, b[prop]);
2079
- if (__getOwnPropSymbols$e)
2080
- for (var prop of __getOwnPropSymbols$e(b)) {
2081
- if (__propIsEnum$e.call(b, prop))
2082
- __defNormalProp$e(a, prop, b[prop]);
2083
- }
2084
- return a;
2085
- };
2086
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
2087
- var __objRest$c = (source, exclude) => {
2088
- var target = {};
2089
- for (var prop in source)
2090
- if (__hasOwnProp$e.call(source, prop) && exclude.indexOf(prop) < 0)
2091
- target[prop] = source[prop];
2092
- if (source != null && __getOwnPropSymbols$e)
2093
- for (var prop of __getOwnPropSymbols$e(source)) {
2094
- if (exclude.indexOf(prop) < 0 && __propIsEnum$e.call(source, prop))
2095
- target[prop] = source[prop];
2096
- }
2097
- return target;
1630
+ });
1631
+ const numberFieldAria = useNumberField.useNumberField(
1632
+ {
1633
+ ...numberFieldProps,
1634
+ validationState: error === false || error === void 0 ? void 0 : "invalid"
1635
+ },
1636
+ numberFieldState,
1637
+ ref
1638
+ );
1639
+ return { ...numberFieldAria, state: numberFieldState };
2098
1640
  };
1641
+
2099
1642
  const NumberField = React.forwardRef(function NumberField2(props, ref) {
2100
- var _b;
2101
- const _a = props, {
1643
+ const {
2102
1644
  label,
2103
1645
  isDisabled,
2104
1646
  error,
@@ -2113,24 +1655,9 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
2113
1655
  showButtons = false,
2114
1656
  incrementAriaLabel,
2115
1657
  decrementAriaLabel,
2116
- autoFormat = false
2117
- } = _a, otherProps = __objRest$c(_a, [
2118
- "label",
2119
- "isDisabled",
2120
- "error",
2121
- "note",
2122
- "isRequired",
2123
- "contextualHelp",
2124
- "affix",
2125
- "size",
2126
- "labelPlacement",
2127
- "necessityIndicator",
2128
- "alignInputRight",
2129
- "showButtons",
2130
- "incrementAriaLabel",
2131
- "decrementAriaLabel",
2132
- "autoFormat"
2133
- ]);
1658
+ autoFormat = false,
1659
+ ...otherProps
1660
+ } = props;
2134
1661
  const { prefix, postfix } = React.useMemo(() => {
2135
1662
  if (affix === "auto") {
2136
1663
  return { prefix: void 0, postfix: void 0 };
@@ -2138,7 +1665,7 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
2138
1665
  return { prefix: affix.prefix, postfix: affix.postfix };
2139
1666
  }, [affix]);
2140
1667
  sapphireReact.useThemeCheck();
2141
- const inputRef = utils.useObjectRef(props.inputRef);
1668
+ const inputRef = useObjectRef.useObjectRef(props.inputRef);
2142
1669
  const formatMessage = i18n.useMessageFormatter(intlMessages$1);
2143
1670
  const {
2144
1671
  inputProps,
@@ -2147,14 +1674,21 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
2147
1674
  decrementButtonProps,
2148
1675
  descriptionProps,
2149
1676
  errorMessageProps
2150
- } = useSapphireNumberField(__spreadProps$d(__spreadValues$e({}, props), {
2151
- incrementAriaLabel: incrementAriaLabel != null ? incrementAriaLabel : formatMessage("increment"),
2152
- decrementAriaLabel: decrementAriaLabel != null ? decrementAriaLabel : formatMessage("decrement")
2153
- }), inputRef);
2154
- const { focusProps, isFocusVisible } = focus.useFocusRing();
1677
+ } = useSapphireNumberField(
1678
+ {
1679
+ ...props,
1680
+ incrementAriaLabel: incrementAriaLabel ?? formatMessage("increment"),
1681
+ decrementAriaLabel: decrementAriaLabel ?? formatMessage("decrement")
1682
+ },
1683
+ inputRef
1684
+ );
1685
+ const { focusProps, isFocusVisible } = useFocusRing.useFocusRing();
2155
1686
  const { autofillStyles, updateStyle } = useAutofillStyle(inputRef);
2156
- const { locale } = i18n.useLocale();
2157
- const formatter = React.useMemo(() => new Intl.NumberFormat(locale, props.formatOptions), [locale, props.formatOptions]);
1687
+ const { locale } = I18nProvider.useLocale();
1688
+ const formatter = React.useMemo(
1689
+ () => new Intl.NumberFormat(locale, props.formatOptions),
1690
+ [locale, props.formatOptions]
1691
+ );
2158
1692
  const formattingResult = useNumberFieldFormatting({
2159
1693
  inputRef,
2160
1694
  formatter,
@@ -2172,65 +1706,122 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
2172
1706
  handleKeyDown: inputProps.onKeyDown
2173
1707
  };
2174
1708
  const containerRef = React.useRef(null);
2175
- React.useImperativeHandle(ref, () => __spreadProps$d(__spreadValues$e({}, utils$1.createFocusableRef(containerRef, inputRef)), {
1709
+ React.useImperativeHandle(ref, () => ({
1710
+ ...utils.createFocusableRef(containerRef, inputRef),
1711
+ /**
1712
+ * (This function is deprecated. Use `inputRef` prop)
1713
+ * @deprecated
1714
+ */
2176
1715
  getInputElement() {
2177
1716
  return inputRef.current;
2178
1717
  }
2179
1718
  }));
2180
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$d(__spreadValues$e({}, removeUniqueDOMProps(otherProps)), {
2181
- ref: containerRef,
2182
- size,
2183
- labelPlacement
2184
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, {
2185
- descriptionProps: error ? errorMessageProps : descriptionProps
2186
- }, label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, __spreadProps$d(__spreadValues$e({}, labelProps), {
2187
- size,
2188
- necessityIndicator: isRequired && necessityIndicator ? "required" : !isRequired && necessityIndicator ? "optional" : void 0,
2189
- contextualHelp
2190
- }), label)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
2191
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field"], {
2192
- [textFieldStyles__default["default"]["is-focus"]]: isFocusVisible,
2193
- [textFieldStyles__default["default"]["sapphire-text-field--error"]]: error === true || typeof error === "string",
2194
- [textFieldStyles__default["default"]["sapphire-text-field--md"]]: size === "md"
2195
- })
2196
- }, extractedPrefix && /* @__PURE__ */ React__default["default"].createElement("span", {
2197
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__prefix"], {
2198
- [textFieldStyles__default["default"]["sapphire-text-field__prefix--icon"]]: typeof extractedPrefix !== "string"
2199
- })
2200
- }, extractedPrefix), /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$d(__spreadValues$e({}, utils.mergeProps(inputProps, focusProps, {
2201
- onChange: updateStyle,
2202
- onBlur: updateStyle
2203
- }, autoFormat ? {
2204
- onInput: handleInput,
2205
- onKeyDown: handleKeyDown
2206
- } : {})), {
2207
- value: (_b = formattingResult == null ? void 0 : formattingResult.displayValue) != null ? _b : inputProps.value,
2208
- ref: inputRef,
2209
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__input"], {
2210
- [textFieldStyles__default["default"]["sapphire-text-field__input--align-right"]]: !!alignInputRight
2211
- }),
2212
- style: autofillStyles
2213
- })), extractedPostfix && /* @__PURE__ */ React__default["default"].createElement("span", {
2214
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__postfix"], {
2215
- [textFieldStyles__default["default"]["sapphire-text-field__postfix--icon"]]: typeof extractedPostfix !== "string"
2216
- })
2217
- }, extractedPostfix), showButtons && /* @__PURE__ */ React__default["default"].createElement("div", {
2218
- className: textFieldStyles__default["default"]["sapphire-text-field__stepper"]
2219
- }, /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
2220
- variant: "decrement",
2221
- size
2222
- }, decrementButtonProps)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Separator, {
2223
- orientation: "vertical"
2224
- }), /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
2225
- variant: "increment",
2226
- size
2227
- }, incrementButtonProps))))), (error && typeof error !== "boolean" || note) && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, error && typeof error !== "boolean" ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
2228
- variant: "error"
2229
- }, error) : note ? note : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null))));
1719
+ return /* @__PURE__ */ React.createElement(
1720
+ sapphireReact.Field,
1721
+ {
1722
+ ...removeUniqueDOMProps(otherProps),
1723
+ ref: containerRef,
1724
+ size,
1725
+ labelPlacement
1726
+ },
1727
+ /* @__PURE__ */ React.createElement(
1728
+ sapphireReact.Field.Context,
1729
+ {
1730
+ descriptionProps: error ? errorMessageProps : descriptionProps
1731
+ },
1732
+ label && /* @__PURE__ */ React.createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React.createElement(
1733
+ sapphireReact.Label,
1734
+ {
1735
+ ...labelProps,
1736
+ size,
1737
+ necessityIndicator: isRequired && necessityIndicator ? "required" : !isRequired && necessityIndicator ? "optional" : void 0,
1738
+ contextualHelp
1739
+ },
1740
+ label
1741
+ )),
1742
+ /* @__PURE__ */ React.createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React.createElement(
1743
+ "div",
1744
+ {
1745
+ className: clsx(textFieldStyles["sapphire-text-field"], {
1746
+ [textFieldStyles["is-focus"]]: isFocusVisible,
1747
+ [textFieldStyles["sapphire-text-field--error"]]: error === true || typeof error === "string",
1748
+ [textFieldStyles["sapphire-text-field--md"]]: size === "md"
1749
+ })
1750
+ },
1751
+ extractedPrefix && /* @__PURE__ */ React.createElement(
1752
+ "span",
1753
+ {
1754
+ className: clsx(
1755
+ textFieldStyles["sapphire-text-field__prefix"],
1756
+ {
1757
+ [textFieldStyles["sapphire-text-field__prefix--icon"]]: typeof extractedPrefix !== "string"
1758
+ }
1759
+ )
1760
+ },
1761
+ extractedPrefix
1762
+ ),
1763
+ /* @__PURE__ */ React.createElement(
1764
+ "input",
1765
+ {
1766
+ ...mergeProps.mergeProps(
1767
+ inputProps,
1768
+ focusProps,
1769
+ {
1770
+ onChange: updateStyle,
1771
+ onBlur: updateStyle
1772
+ },
1773
+ autoFormat ? {
1774
+ onInput: handleInput,
1775
+ onKeyDown: handleKeyDown
1776
+ } : {}
1777
+ ),
1778
+ value: formattingResult?.displayValue ?? inputProps.value,
1779
+ ref: inputRef,
1780
+ className: clsx(textFieldStyles["sapphire-text-field__input"], {
1781
+ [textFieldStyles["sapphire-text-field__input--align-right"]]: !!alignInputRight
1782
+ }),
1783
+ style: autofillStyles
1784
+ }
1785
+ ),
1786
+ extractedPostfix && /* @__PURE__ */ React.createElement(
1787
+ "span",
1788
+ {
1789
+ className: clsx(
1790
+ textFieldStyles["sapphire-text-field__postfix"],
1791
+ {
1792
+ [textFieldStyles["sapphire-text-field__postfix--icon"]]: typeof extractedPostfix !== "string"
1793
+ }
1794
+ )
1795
+ },
1796
+ extractedPostfix
1797
+ ),
1798
+ showButtons && /* @__PURE__ */ React.createElement("div", { className: textFieldStyles["sapphire-text-field__stepper"] }, /* @__PURE__ */ React.createElement(
1799
+ StepperButton,
1800
+ {
1801
+ variant: "decrement",
1802
+ size,
1803
+ ...decrementButtonProps
1804
+ }
1805
+ ), /* @__PURE__ */ React.createElement(sapphireReact.Separator, { orientation: "vertical" }), /* @__PURE__ */ React.createElement(
1806
+ StepperButton,
1807
+ {
1808
+ variant: "increment",
1809
+ size,
1810
+ ...incrementButtonProps
1811
+ }
1812
+ ))
1813
+ )),
1814
+ (error && typeof error !== "boolean" || note) && /* @__PURE__ */ React.createElement(sapphireReact.Field.Footer, null, error && typeof error !== "boolean" ? /* @__PURE__ */ React.createElement(sapphireReact.Field.Note, { variant: "error" }, error) : note ? note : /* @__PURE__ */ React.createElement(React.Fragment, null))
1815
+ )
1816
+ );
2230
1817
  });
2231
- const removeUniqueDOMProps = (props) => Object.fromEntries(Object.entries(props).filter(([name]) => name !== "id" && !name.startsWith("data-")));
1818
+ const removeUniqueDOMProps = (props) => Object.fromEntries(
1819
+ Object.entries(props).filter(
1820
+ ([name]) => name !== "id" && !name.startsWith("data-")
1821
+ )
1822
+ );
2232
1823
 
2233
- const SecondarySidebarContext = React__default["default"].createContext(null);
1824
+ const SecondarySidebarContext = React.createContext(null);
2234
1825
  const useSecondarySidebarContext = () => {
2235
1826
  const context = React.useContext(SecondarySidebarContext);
2236
1827
  if (context) {
@@ -2245,22 +1836,25 @@ const SecondarySidebarProvider = ({
2245
1836
  themeVariant,
2246
1837
  children
2247
1838
  }) => {
2248
- var _a, _b, _c, _d;
2249
1839
  const context = React.useContext(SecondarySidebarContext);
2250
- const [secondarySidebarId, setSecondarySidebarId] = utils$2.useControlledState(openedId, defaultOpenedId != null ? defaultOpenedId : null, onOpenedIdChange);
1840
+ const [secondarySidebarId, setSecondarySidebarId] = useControlledState.useControlledState(openedId, defaultOpenedId ?? null, onOpenedIdChange);
2251
1841
  const [content, setContent] = React.useState(null);
2252
- return /* @__PURE__ */ React__default["default"].createElement(SecondarySidebarContext.Provider, {
2253
- value: {
2254
- openedId: (_a = context == null ? void 0 : context.openedId) != null ? _a : secondarySidebarId,
2255
- setOpenedId: (_b = context == null ? void 0 : context.setOpenedId) != null ? _b : setSecondarySidebarId,
2256
- content: (_c = context == null ? void 0 : context.content) != null ? _c : content,
2257
- setContent: (_d = context == null ? void 0 : context.setContent) != null ? _d : setContent,
2258
- themeVariant: themeVariant != null ? themeVariant : context == null ? void 0 : context.themeVariant
2259
- }
2260
- }, children);
1842
+ return /* @__PURE__ */ React.createElement(
1843
+ SecondarySidebarContext.Provider,
1844
+ {
1845
+ value: {
1846
+ openedId: context?.openedId ?? secondarySidebarId,
1847
+ setOpenedId: context?.setOpenedId ?? setSecondarySidebarId,
1848
+ content: context?.content ?? content,
1849
+ setContent: context?.setContent ?? setContent,
1850
+ themeVariant: themeVariant ?? context?.themeVariant
1851
+ }
1852
+ },
1853
+ children
1854
+ );
2261
1855
  };
2262
1856
 
2263
- const ResponsiveSidebarContext = React__default["default"].createContext(null);
1857
+ const ResponsiveSidebarContext = React.createContext(null);
2264
1858
  function useResponsiveSidebarContext() {
2265
1859
  return React.useContext(ResponsiveSidebarContext);
2266
1860
  }
@@ -2286,59 +1880,35 @@ const ResponsiveSidebarProvider = ({
2286
1880
  onPanelOpenChange,
2287
1881
  children
2288
1882
  }) => {
2289
- const [isOpen, setOpen] = utils$2.useControlledState(isPanelOpen, defaultIsPanelOpen != null ? defaultIsPanelOpen : false, onPanelOpenChange);
2290
- return /* @__PURE__ */ React__default["default"].createElement(ResponsiveSidebarContext.Provider, {
2291
- value: {
2292
- isPanelOpen: isOpen,
2293
- setPanelOpen: setOpen,
2294
- collapsed
2295
- }
2296
- }, children);
2297
- };
2298
-
2299
- var __defProp$d = Object.defineProperty;
2300
- var __defProps$c = Object.defineProperties;
2301
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
2302
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
2303
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
2304
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
2305
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2306
- var __spreadValues$d = (a, b) => {
2307
- for (var prop in b || (b = {}))
2308
- if (__hasOwnProp$d.call(b, prop))
2309
- __defNormalProp$d(a, prop, b[prop]);
2310
- if (__getOwnPropSymbols$d)
2311
- for (var prop of __getOwnPropSymbols$d(b)) {
2312
- if (__propIsEnum$d.call(b, prop))
2313
- __defNormalProp$d(a, prop, b[prop]);
2314
- }
2315
- return a;
2316
- };
2317
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
2318
- var __objRest$b = (source, exclude) => {
2319
- var target = {};
2320
- for (var prop in source)
2321
- if (__hasOwnProp$d.call(source, prop) && exclude.indexOf(prop) < 0)
2322
- target[prop] = source[prop];
2323
- if (source != null && __getOwnPropSymbols$d)
2324
- for (var prop of __getOwnPropSymbols$d(source)) {
2325
- if (exclude.indexOf(prop) < 0 && __propIsEnum$d.call(source, prop))
2326
- target[prop] = source[prop];
2327
- }
2328
- return target;
1883
+ const [isOpen, setOpen] = useControlledState.useControlledState(
1884
+ isPanelOpen,
1885
+ defaultIsPanelOpen ?? false,
1886
+ onPanelOpenChange
1887
+ );
1888
+ return /* @__PURE__ */ React.createElement(
1889
+ ResponsiveSidebarContext.Provider,
1890
+ {
1891
+ value: {
1892
+ isPanelOpen: isOpen,
1893
+ setPanelOpen: setOpen,
1894
+ collapsed
1895
+ }
1896
+ },
1897
+ children
1898
+ );
2329
1899
  };
2330
- const SidebarPanel = (_a) => {
2331
- var _b = _a, {
2332
- children,
2333
- header
2334
- } = _b, props = __objRest$b(_b, [
2335
- "children",
2336
- "header"
2337
- ]);
1900
+
1901
+ const SidebarPanel = ({
1902
+ children,
1903
+ header,
1904
+ ...props
1905
+ }) => {
2338
1906
  const { openedId, setOpenedId, content } = useSecondarySidebarContext();
2339
1907
  const responsiveContext = useResponsiveSidebarContext();
2340
1908
  if (!responsiveContext) {
2341
- throw new Error("<SidebarPanel> must be rendered inside a <Sidebar.ResponsiveProvider>");
1909
+ throw new Error(
1910
+ "<SidebarPanel> must be rendered inside a <Sidebar.ResponsiveProvider>"
1911
+ );
2342
1912
  }
2343
1913
  const { isPanelOpen, setPanelOpen } = responsiveContext;
2344
1914
  const isCollapsed = useIsSidebarCollapsed();
@@ -2347,41 +1917,60 @@ const SidebarPanel = (_a) => {
2347
1917
  setPanelOpen(false);
2348
1918
  }
2349
1919
  }, [isCollapsed]);
2350
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Panel, __spreadProps$c(__spreadValues$d({}, props), {
2351
- isOpen: isPanelOpen,
2352
- onClose: () => setPanelOpen(false),
2353
- onCloseTransitionDone: () => setOpenedId(null),
2354
- alignLeft: true,
2355
- isDismissable: true,
2356
- width: 320
2357
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout, {
2358
- header: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout.Header, {
2359
- heading: openedId === null ? header : content == null ? void 0 : content.header,
2360
- backButton: openedId !== null && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, {
2361
- size: "md",
2362
- "aria-label": "Back",
2363
- variant: "tertiary",
2364
- marginLeft: `calc(-1 * ${sapphireReact.tokens.size.spacingSm})`,
2365
- onPress: () => setOpenedId(null)
2366
- }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronLeft, null))
2367
- }),
2368
- body: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout.Body, {
2369
- noPadding: true,
2370
- UNSAFE_style: {
2371
- paddingLeft: sapphireReact.tokens.size.spacingMd.value,
2372
- paddingRight: sapphireReact.tokens.size.spacingMd.value
1920
+ return /* @__PURE__ */ React.createElement(
1921
+ sapphireReact.Panel,
1922
+ {
1923
+ ...props,
1924
+ isOpen: isPanelOpen,
1925
+ onClose: () => setPanelOpen(false),
1926
+ onCloseTransitionDone: () => setOpenedId(null),
1927
+ alignLeft: true,
1928
+ isDismissable: true,
1929
+ width: 320
1930
+ },
1931
+ /* @__PURE__ */ React.createElement(
1932
+ sapphireReact.ModalLayout,
1933
+ {
1934
+ header: /* @__PURE__ */ React.createElement(
1935
+ sapphireReact.ModalLayout.Header,
1936
+ {
1937
+ heading: openedId === null ? header : content?.header,
1938
+ backButton: openedId !== null && /* @__PURE__ */ React.createElement(
1939
+ sapphireReact.IconButton,
1940
+ {
1941
+ size: "md",
1942
+ "aria-label": "Back",
1943
+ variant: "tertiary",
1944
+ marginLeft: `calc(-1 * ${sapphireReact.tokens.size.spacingSm})`,
1945
+ onPress: () => setOpenedId(null)
1946
+ },
1947
+ /* @__PURE__ */ React.createElement(react.ChevronLeft, null)
1948
+ )
1949
+ }
1950
+ ),
1951
+ body: /* @__PURE__ */ React.createElement(
1952
+ sapphireReact.ModalLayout.Body,
1953
+ {
1954
+ noPadding: true,
1955
+ UNSAFE_style: {
1956
+ paddingLeft: sapphireReact.tokens.size.spacingMd.value,
1957
+ paddingRight: sapphireReact.tokens.size.spacingMd.value
1958
+ }
1959
+ },
1960
+ /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(sapphireReact.View, { isHidden: openedId !== null }, children), openedId && content?.body)
1961
+ )
2373
1962
  }
2374
- }, /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.View, {
2375
- isHidden: openedId !== null
2376
- }, children), openedId && (content == null ? void 0 : content.body)))
2377
- }));
1963
+ )
1964
+ );
2378
1965
  };
2379
1966
  const SidebarPanelTrigger = ({
2380
1967
  children
2381
1968
  }) => {
2382
1969
  const context = useResponsiveSidebarContext();
2383
1970
  if (!context) {
2384
- throw new Error("<Sidebar.PanelTrigger> should be rendered inside a <Sidebar.ResponsiveProvider>");
1971
+ throw new Error(
1972
+ "<Sidebar.PanelTrigger> should be rendered inside a <Sidebar.ResponsiveProvider>"
1973
+ );
2385
1974
  }
2386
1975
  const isCollapsed = useIsSidebarCollapsed();
2387
1976
  const panelTriggerProps = {
@@ -2416,271 +2005,163 @@ const useSidebar = () => {
2416
2005
  };
2417
2006
  };
2418
2007
 
2419
- var __defProp$c = Object.defineProperty;
2420
- var __defProps$b = Object.defineProperties;
2421
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
2422
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
2423
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
2424
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
2425
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2426
- var __spreadValues$c = (a, b) => {
2427
- for (var prop in b || (b = {}))
2428
- if (__hasOwnProp$c.call(b, prop))
2429
- __defNormalProp$c(a, prop, b[prop]);
2430
- if (__getOwnPropSymbols$c)
2431
- for (var prop of __getOwnPropSymbols$c(b)) {
2432
- if (__propIsEnum$c.call(b, prop))
2433
- __defNormalProp$c(a, prop, b[prop]);
2434
- }
2435
- return a;
2436
- };
2437
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
2438
- var __objRest$a = (source, exclude) => {
2439
- var target = {};
2440
- for (var prop in source)
2441
- if (__hasOwnProp$c.call(source, prop) && exclude.indexOf(prop) < 0)
2442
- target[prop] = source[prop];
2443
- if (source != null && __getOwnPropSymbols$c)
2444
- for (var prop of __getOwnPropSymbols$c(source)) {
2445
- if (exclude.indexOf(prop) < 0 && __propIsEnum$c.call(source, prop))
2446
- target[prop] = source[prop];
2447
- }
2448
- return target;
2449
- };
2450
- const Sidebar = (_a) => {
2451
- var _b = _a, {
2452
- themeVariant,
2453
- openedSecondarySidebar,
2454
- defaultOpenedSecondarySidebar,
2455
- onSecondarySidebarChange,
2456
- secondarySidebarThemeVariant,
2457
- children
2458
- } = _b, props = __objRest$a(_b, [
2459
- "themeVariant",
2460
- "openedSecondarySidebar",
2461
- "defaultOpenedSecondarySidebar",
2462
- "onSecondarySidebarChange",
2463
- "secondarySidebarThemeVariant",
2464
- "children"
2465
- ]);
2008
+ const Sidebar = ({
2009
+ themeVariant,
2010
+ openedSecondarySidebar,
2011
+ defaultOpenedSecondarySidebar,
2012
+ onSecondarySidebarChange,
2013
+ secondarySidebarThemeVariant,
2014
+ children,
2015
+ ...props
2016
+ }) => {
2466
2017
  sapphireReact.useThemeCheck();
2467
- return /* @__PURE__ */ React__default["default"].createElement(SecondarySidebarProvider, {
2468
- openedId: openedSecondarySidebar,
2469
- defaultOpenedId: defaultOpenedSecondarySidebar,
2470
- onOpenedIdChange: onSecondarySidebarChange,
2471
- themeVariant: secondarySidebarThemeVariant
2472
- }, /* @__PURE__ */ React__default["default"].createElement(WithThemeRoot, {
2473
- themeVariant
2474
- }, /* @__PURE__ */ React__default["default"].createElement(SidebarContent, __spreadValues$c({}, props), children)));
2475
- };
2476
- const SidebarContent = (_c) => {
2477
- var _d = _c, {
2478
- onBlurWithin,
2479
- onFocusWithin,
2480
- onFocusWithinChange,
2481
- closeOnBlurWithin = true,
2482
- header,
2483
- panelHeader,
2484
- children
2485
- } = _d, props = __objRest$a(_d, [
2486
- "onBlurWithin",
2487
- "onFocusWithin",
2488
- "onFocusWithinChange",
2489
- "closeOnBlurWithin",
2490
- "header",
2491
- "panelHeader",
2492
- "children"
2493
- ]);
2018
+ return /* @__PURE__ */ React.createElement(
2019
+ SecondarySidebarProvider,
2020
+ {
2021
+ openedId: openedSecondarySidebar,
2022
+ defaultOpenedId: defaultOpenedSecondarySidebar,
2023
+ onOpenedIdChange: onSecondarySidebarChange,
2024
+ themeVariant: secondarySidebarThemeVariant
2025
+ },
2026
+ /* @__PURE__ */ React.createElement(WithThemeRoot, { themeVariant }, /* @__PURE__ */ React.createElement(SidebarContent, { ...props }, children))
2027
+ );
2028
+ };
2029
+ const SidebarContent = ({
2030
+ onBlurWithin,
2031
+ onFocusWithin,
2032
+ onFocusWithinChange,
2033
+ closeOnBlurWithin = true,
2034
+ header,
2035
+ panelHeader,
2036
+ children,
2037
+ ...props
2038
+ }) => {
2494
2039
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2495
2040
  const { sidebarProps } = useSidebar();
2496
- const { focusWithinProps } = interactions.useFocusWithin(utils.mergeProps({
2497
- onBlurWithin,
2498
- onFocusWithin,
2499
- onFocusWithinChange
2500
- }, closeOnBlurWithin ? sidebarProps : {}));
2041
+ const { focusWithinProps } = useFocusWithin.useFocusWithin(
2042
+ mergeProps.mergeProps(
2043
+ {
2044
+ onBlurWithin,
2045
+ onFocusWithin,
2046
+ onFocusWithinChange
2047
+ },
2048
+ closeOnBlurWithin ? sidebarProps : {}
2049
+ )
2050
+ );
2501
2051
  const responsiveSidebarContext = useResponsiveSidebarContext();
2502
2052
  const isCollapsed = useIsSidebarCollapsed();
2503
- return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, !isCollapsed && /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$b(__spreadValues$c(__spreadValues$c(__spreadValues$c({}, styleProps), utils.filterDOMProps(props, { global: true })), focusWithinProps), {
2504
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar"]),
2505
- tabIndex: -1
2506
- }), header, children), responsiveSidebarContext && /* @__PURE__ */ React__default["default"].createElement(SidebarPanel, {
2507
- header: panelHeader
2508
- }, children));
2053
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, !isCollapsed && /* @__PURE__ */ React.createElement(
2054
+ "div",
2055
+ {
2056
+ ...styleProps,
2057
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
2058
+ ...focusWithinProps,
2059
+ className: clsx(styles$6["sapphire-sidebar"]),
2060
+ tabIndex: -1
2061
+ },
2062
+ header,
2063
+ children
2064
+ ), responsiveSidebarContext && /* @__PURE__ */ React.createElement(SidebarPanel, { header: panelHeader }, children));
2509
2065
  };
2510
2066
  const WithThemeRoot = ({
2511
2067
  children,
2512
2068
  themeVariant
2513
- }) => themeVariant ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ThemeRoot, {
2514
- variant: themeVariant,
2515
- noSurface: true,
2516
- height: "100%",
2517
- width: "min-content"
2518
- }, children) : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, children);
2519
-
2520
- var __defProp$b = Object.defineProperty;
2521
- var __defProps$a = Object.defineProperties;
2522
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
2523
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
2524
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
2525
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
2526
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2527
- var __spreadValues$b = (a, b) => {
2528
- for (var prop in b || (b = {}))
2529
- if (__hasOwnProp$b.call(b, prop))
2530
- __defNormalProp$b(a, prop, b[prop]);
2531
- if (__getOwnPropSymbols$b)
2532
- for (var prop of __getOwnPropSymbols$b(b)) {
2533
- if (__propIsEnum$b.call(b, prop))
2534
- __defNormalProp$b(a, prop, b[prop]);
2535
- }
2536
- return a;
2537
- };
2538
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
2539
- var __objRest$9 = (source, exclude) => {
2540
- var target = {};
2541
- for (var prop in source)
2542
- if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
2543
- target[prop] = source[prop];
2544
- if (source != null && __getOwnPropSymbols$b)
2545
- for (var prop of __getOwnPropSymbols$b(source)) {
2546
- if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
2547
- target[prop] = source[prop];
2548
- }
2549
- return target;
2550
- };
2551
- const SidebarHeader = (_a) => {
2552
- var _b = _a, {
2069
+ }) => themeVariant ? /* @__PURE__ */ React.createElement(
2070
+ sapphireReact.ThemeRoot,
2071
+ {
2072
+ variant: themeVariant,
2073
+ noSurface: true,
2074
+ height: "100%",
2075
+ width: "min-content"
2076
+ },
2077
+ children
2078
+ ) : /* @__PURE__ */ React.createElement(React.Fragment, null, children);
2079
+
2080
+ const SidebarHeader = ({
2081
+ children,
2082
+ closeButtonProps,
2083
+ ...props
2084
+ }) => {
2085
+ return /* @__PURE__ */ React.createElement(
2086
+ "div",
2087
+ {
2088
+ ...filterDOMProps.filterDOMProps(props),
2089
+ className: clsx(styles$6["sapphire-sidebar__header"])
2090
+ },
2553
2091
  children,
2554
- closeButtonProps
2555
- } = _b, props = __objRest$9(_b, [
2556
- "children",
2557
- "closeButtonProps"
2558
- ]);
2559
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$a(__spreadValues$b({}, utils.filterDOMProps(props)), {
2560
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__header"])
2561
- }), children, closeButtonProps && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, __spreadProps$a(__spreadValues$b({}, closeButtonProps), {
2562
- "aria-label": "Close"
2563
- }), /* @__PURE__ */ React__default["default"].createElement(react.CloseLarge, null)));
2564
- };
2565
-
2566
- var __defProp$a = Object.defineProperty;
2567
- var __defProps$9 = Object.defineProperties;
2568
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
2569
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
2570
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
2571
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
2572
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2573
- var __spreadValues$a = (a, b) => {
2574
- for (var prop in b || (b = {}))
2575
- if (__hasOwnProp$a.call(b, prop))
2576
- __defNormalProp$a(a, prop, b[prop]);
2577
- if (__getOwnPropSymbols$a)
2578
- for (var prop of __getOwnPropSymbols$a(b)) {
2579
- if (__propIsEnum$a.call(b, prop))
2580
- __defNormalProp$a(a, prop, b[prop]);
2581
- }
2582
- return a;
2583
- };
2584
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
2585
- var __objRest$8 = (source, exclude) => {
2586
- var target = {};
2587
- for (var prop in source)
2588
- if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
2589
- target[prop] = source[prop];
2590
- if (source != null && __getOwnPropSymbols$a)
2591
- for (var prop of __getOwnPropSymbols$a(source)) {
2592
- if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
2593
- target[prop] = source[prop];
2594
- }
2595
- return target;
2092
+ closeButtonProps && /* @__PURE__ */ React.createElement(sapphireReact.IconButton, { ...closeButtonProps, "aria-label": "Close" }, /* @__PURE__ */ React.createElement(react.CloseLarge, null))
2093
+ );
2596
2094
  };
2597
- const SidebarItem = React__default["default"].forwardRef(function SidebarItem2(_a, ref) {
2598
- var _b = _a, { isActive, children } = _b, props = __objRest$8(_b, ["isActive", "children"]);
2095
+
2096
+ const SidebarItem = React.forwardRef(function SidebarItem2({ isActive, children, ...props }, ref) {
2599
2097
  const { itemProps } = useSidebar();
2600
- return /* @__PURE__ */ React__default["default"].createElement("li", {
2601
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
2602
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$9(__spreadValues$a({
2603
- ref,
2604
- variant: "tertiary",
2605
- elementType: "a",
2606
- "aria-current": isActive ? "page" : void 0
2607
- }, utils.mergeProps(props, itemProps)), {
2608
- UNSAFE_className: clsx__default["default"](buttonStyles__default["default"]["sapphire-button--stretch-left-align"], { [buttonStyles__default["default"]["sapphire-button--selected"]]: isActive })
2609
- }), children));
2098
+ return /* @__PURE__ */ React.createElement("li", { className: clsx(styles$6["sapphire-sidebar__nav-item"]) }, /* @__PURE__ */ React.createElement(
2099
+ sapphireReact.Button,
2100
+ {
2101
+ ref,
2102
+ variant: "tertiary",
2103
+ elementType: "a",
2104
+ "aria-current": isActive ? "page" : void 0,
2105
+ ...mergeProps.mergeProps(props, itemProps),
2106
+ UNSAFE_className: clsx(
2107
+ buttonStyles["sapphire-button--stretch-left-align"],
2108
+ { [buttonStyles["sapphire-button--selected"]]: isActive }
2109
+ )
2110
+ },
2111
+ children
2112
+ ));
2610
2113
  });
2611
2114
 
2612
- var __defProp$9 = Object.defineProperty;
2613
- var __defProps$8 = Object.defineProperties;
2614
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
2615
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
2616
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
2617
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
2618
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2619
- var __spreadValues$9 = (a, b) => {
2620
- for (var prop in b || (b = {}))
2621
- if (__hasOwnProp$9.call(b, prop))
2622
- __defNormalProp$9(a, prop, b[prop]);
2623
- if (__getOwnPropSymbols$9)
2624
- for (var prop of __getOwnPropSymbols$9(b)) {
2625
- if (__propIsEnum$9.call(b, prop))
2626
- __defNormalProp$9(a, prop, b[prop]);
2627
- }
2628
- return a;
2629
- };
2630
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
2631
- var __objRest$7 = (source, exclude) => {
2632
- var target = {};
2633
- for (var prop in source)
2634
- if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
2635
- target[prop] = source[prop];
2636
- if (source != null && __getOwnPropSymbols$9)
2637
- for (var prop of __getOwnPropSymbols$9(source)) {
2638
- if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
2639
- target[prop] = source[prop];
2640
- }
2641
- return target;
2642
- };
2643
- const SidebarExpandableItem = React__default["default"].forwardRef(function SidebarExpandableItem2(_a, ref) {
2644
- var _b = _a, {
2115
+ const SidebarExpandableItem = React.forwardRef(
2116
+ function SidebarExpandableItem2({
2645
2117
  id,
2646
2118
  isActive,
2647
2119
  body,
2648
2120
  header,
2649
- children
2650
- } = _b, props = __objRest$7(_b, [
2651
- "id",
2652
- "isActive",
2653
- "body",
2654
- "header",
2655
- "children"
2656
- ]);
2657
- const { openedId, setContent, themeVariant } = useSecondarySidebarContext();
2658
- const isCollapsed = useIsSidebarCollapsed();
2659
- const { getExpandableItemProps, secondarySidebarProps } = useSidebar();
2660
- const itemId = utils.useId(id);
2661
- const isOpen = openedId === itemId;
2662
- React.useLayoutEffect(() => {
2663
- if (isOpen) {
2664
- setContent({ header, body });
2665
- }
2666
- }, [isOpen]);
2667
- return /* @__PURE__ */ React__default["default"].createElement("li", {
2668
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
2669
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$8(__spreadValues$9({
2670
- variant: "tertiary",
2671
- "aria-current": isActive || void 0,
2672
- ref
2673
- }, utils.mergeProps(getExpandableItemProps(itemId), props)), {
2674
- UNSAFE_className: clsx__default["default"](buttonStyles__default["default"]["sapphire-button--stretch-left-align"], {
2675
- [buttonStyles__default["default"]["sapphire-button--selected"]]: isActive && !isOpen,
2676
- [buttonStyles__default["default"]["is-active"]]: isOpen
2677
- })
2678
- }), children), /* @__PURE__ */ React__default["default"].createElement(SecondarySidebar, __spreadValues$9({
2679
- isOpen: isOpen && !isCollapsed,
2680
- header,
2681
- themeVariant
2682
- }, secondarySidebarProps), body));
2683
- });
2121
+ children,
2122
+ ...props
2123
+ }, ref) {
2124
+ const { openedId, setContent, themeVariant } = useSecondarySidebarContext();
2125
+ const isCollapsed = useIsSidebarCollapsed();
2126
+ const { getExpandableItemProps, secondarySidebarProps } = useSidebar();
2127
+ const itemId = useId.useId(id);
2128
+ const isOpen = openedId === itemId;
2129
+ React.useLayoutEffect(() => {
2130
+ if (isOpen) {
2131
+ setContent({ header, body });
2132
+ }
2133
+ }, [isOpen]);
2134
+ return /* @__PURE__ */ React.createElement("li", { className: clsx(styles$6["sapphire-sidebar__nav-item"]) }, /* @__PURE__ */ React.createElement(
2135
+ sapphireReact.Button,
2136
+ {
2137
+ variant: "tertiary",
2138
+ "aria-current": isActive || void 0,
2139
+ ref,
2140
+ ...mergeProps.mergeProps(
2141
+ getExpandableItemProps(itemId),
2142
+ props
2143
+ ),
2144
+ UNSAFE_className: clsx(
2145
+ buttonStyles["sapphire-button--stretch-left-align"],
2146
+ {
2147
+ [buttonStyles["sapphire-button--selected"]]: isActive && !isOpen,
2148
+ [buttonStyles["is-active"]]: isOpen
2149
+ }
2150
+ )
2151
+ },
2152
+ children
2153
+ ), /* @__PURE__ */ React.createElement(
2154
+ SecondarySidebar,
2155
+ {
2156
+ isOpen: isOpen && !isCollapsed,
2157
+ header,
2158
+ themeVariant,
2159
+ ...secondarySidebarProps
2160
+ },
2161
+ body
2162
+ ));
2163
+ }
2164
+ );
2684
2165
  const SecondarySidebar = ({
2685
2166
  isOpen,
2686
2167
  onClose,
@@ -2693,188 +2174,134 @@ const SecondarySidebar = ({
2693
2174
  React.useEffect(() => {
2694
2175
  const handleKeyDown = (e) => {
2695
2176
  if (e.key === "Escape") {
2696
- onClose == null ? void 0 : onClose();
2177
+ onClose?.();
2697
2178
  }
2698
2179
  };
2699
2180
  document.addEventListener("keydown", handleKeyDown);
2700
2181
  return () => document.removeEventListener("keydown", handleKeyDown);
2701
2182
  }, [onClose]);
2702
- return /* @__PURE__ */ React__default["default"].createElement(reactTransitionGroup.Transition, {
2703
- in: isOpen,
2704
- mountOnEnter: true,
2705
- nodeRef: ref,
2706
- unmountOnExit: true,
2707
- onExited: onCloseTransitionDone,
2708
- timeout: 200
2709
- }, (transitionState) => /* @__PURE__ */ React__default["default"].createElement("div", {
2710
- ref,
2711
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__secondary-container"], {
2712
- [styles__default$6["default"]["sapphire-sidebar--slide-in"]]: true,
2713
- [styles__default$6["default"]["sapphire-sidebar--slide-out"]]: transitionState === "exiting"
2714
- })
2715
- }, /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, {
2716
- restoreFocus: true,
2717
- autoFocus: true
2718
- }, /* @__PURE__ */ React__default["default"].createElement(_Sidebar, {
2719
- themeVariant,
2720
- closeOnBlurWithin: false,
2721
- header: /* @__PURE__ */ React__default["default"].createElement(_Sidebar.Header, {
2722
- closeButtonProps: {
2723
- onPress: () => onClose == null ? void 0 : onClose()
2724
- }
2725
- }, header),
2726
- panelHeader: null
2727
- }, children))));
2728
- };
2729
-
2730
- var __defProp$8 = Object.defineProperty;
2731
- var __defProps$7 = Object.defineProperties;
2732
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
2733
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2734
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2735
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2736
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2737
- var __spreadValues$8 = (a, b) => {
2738
- for (var prop in b || (b = {}))
2739
- if (__hasOwnProp$8.call(b, prop))
2740
- __defNormalProp$8(a, prop, b[prop]);
2741
- if (__getOwnPropSymbols$8)
2742
- for (var prop of __getOwnPropSymbols$8(b)) {
2743
- if (__propIsEnum$8.call(b, prop))
2744
- __defNormalProp$8(a, prop, b[prop]);
2745
- }
2746
- return a;
2747
- };
2748
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
2749
- var __objRest$6 = (source, exclude) => {
2750
- var target = {};
2751
- for (var prop in source)
2752
- if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
2753
- target[prop] = source[prop];
2754
- if (source != null && __getOwnPropSymbols$8)
2755
- for (var prop of __getOwnPropSymbols$8(source)) {
2756
- if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
2757
- target[prop] = source[prop];
2758
- }
2759
- return target;
2760
- };
2761
- const SidebarSection = (_a) => {
2762
- var _b = _a, {
2763
- title,
2764
- "aria-label": label,
2765
- children
2766
- } = _b, props = __objRest$6(_b, [
2767
- "title",
2768
- "aria-label",
2769
- "children"
2770
- ]);
2183
+ return /* @__PURE__ */ React.createElement(
2184
+ reactTransitionGroup.Transition,
2185
+ {
2186
+ in: isOpen,
2187
+ mountOnEnter: true,
2188
+ nodeRef: ref,
2189
+ unmountOnExit: true,
2190
+ onExited: onCloseTransitionDone,
2191
+ timeout: 200
2192
+ },
2193
+ (transitionState) => /* @__PURE__ */ React.createElement(
2194
+ "div",
2195
+ {
2196
+ ref,
2197
+ className: clsx(styles$6["sapphire-sidebar__secondary-container"], {
2198
+ [styles$6["sapphire-sidebar--slide-in"]]: true,
2199
+ [styles$6["sapphire-sidebar--slide-out"]]: transitionState === "exiting"
2200
+ })
2201
+ },
2202
+ /* @__PURE__ */ React.createElement(FocusScope.FocusScope, { restoreFocus: true, autoFocus: true }, /* @__PURE__ */ React.createElement(
2203
+ _Sidebar,
2204
+ {
2205
+ themeVariant,
2206
+ closeOnBlurWithin: false,
2207
+ header: /* @__PURE__ */ React.createElement(
2208
+ _Sidebar.Header,
2209
+ {
2210
+ closeButtonProps: {
2211
+ onPress: () => onClose?.()
2212
+ }
2213
+ },
2214
+ header
2215
+ ),
2216
+ panelHeader: null
2217
+ },
2218
+ children
2219
+ ))
2220
+ )
2221
+ );
2222
+ };
2223
+
2224
+ const SidebarSection = ({
2225
+ title,
2226
+ "aria-label": label,
2227
+ children,
2228
+ ...props
2229
+ }) => {
2771
2230
  sapphireReact.useThemeCheck();
2772
2231
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2773
- const { itemProps, headingProps, groupProps } = listbox.useListBoxSection({
2232
+ const { itemProps, headingProps, groupProps } = useListBox.useListBoxSection({
2774
2233
  heading: title,
2775
2234
  "aria-label": label
2776
2235
  });
2777
- return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("li", {
2778
- role: "separator",
2779
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__separator"])
2780
- }), /* @__PURE__ */ React__default["default"].createElement("li", __spreadValues$8(__spreadValues$8(__spreadValues$8({}, itemProps), styleProps), utils.filterDOMProps(props, { global: true })), title && /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$7(__spreadValues$8({}, headingProps), {
2781
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section-header"])
2782
- }), title), /* @__PURE__ */ React__default["default"].createElement("ul", __spreadProps$7(__spreadValues$8({}, groupProps), {
2783
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section"])
2784
- }), children)));
2785
- };
2786
-
2787
- var __defProp$7 = Object.defineProperty;
2788
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2789
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2790
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2791
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2792
- var __spreadValues$7 = (a, b) => {
2793
- for (var prop in b || (b = {}))
2794
- if (__hasOwnProp$7.call(b, prop))
2795
- __defNormalProp$7(a, prop, b[prop]);
2796
- if (__getOwnPropSymbols$7)
2797
- for (var prop of __getOwnPropSymbols$7(b)) {
2798
- if (__propIsEnum$7.call(b, prop))
2799
- __defNormalProp$7(a, prop, b[prop]);
2800
- }
2801
- return a;
2802
- };
2803
- var __objRest$5 = (source, exclude) => {
2804
- var target = {};
2805
- for (var prop in source)
2806
- if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
2807
- target[prop] = source[prop];
2808
- if (source != null && __getOwnPropSymbols$7)
2809
- for (var prop of __getOwnPropSymbols$7(source)) {
2810
- if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
2811
- target[prop] = source[prop];
2812
- }
2813
- return target;
2236
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
2237
+ "li",
2238
+ {
2239
+ role: "separator",
2240
+ className: clsx(styles$6["sapphire-sidebar__separator"])
2241
+ }
2242
+ ), /* @__PURE__ */ React.createElement(
2243
+ "li",
2244
+ {
2245
+ ...itemProps,
2246
+ ...styleProps,
2247
+ ...filterDOMProps.filterDOMProps(props, { global: true })
2248
+ },
2249
+ title && /* @__PURE__ */ React.createElement(
2250
+ "div",
2251
+ {
2252
+ ...headingProps,
2253
+ className: clsx(styles$6["sapphire-sidebar__section-header"])
2254
+ },
2255
+ title
2256
+ ),
2257
+ /* @__PURE__ */ React.createElement(
2258
+ "ul",
2259
+ {
2260
+ ...groupProps,
2261
+ className: clsx(styles$6["sapphire-sidebar__section"])
2262
+ },
2263
+ children
2264
+ )
2265
+ ));
2814
2266
  };
2815
- const SidebarBody = (_a) => {
2816
- var _b = _a, {
2817
- elementType = "nav",
2818
- children
2819
- } = _b, props = __objRest$5(_b, [
2820
- "elementType",
2821
- "children"
2822
- ]);
2267
+
2268
+ const SidebarBody = ({
2269
+ elementType = "nav",
2270
+ children,
2271
+ ...props
2272
+ }) => {
2823
2273
  const RootNode = elementType;
2824
2274
  const sidebarBody = React.useRef(null);
2825
2275
  const { isScrolled, scrollCheckProps } = sapphireReact.useScrollCheck(sidebarBody);
2826
- return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadValues$7(__spreadValues$7({
2827
- ref: sidebarBody,
2828
- tabIndex: -1,
2829
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__body"], {
2830
- [styles__default$6["default"]["sapphire-sidebar__body--scrolled"]]: isScrolled
2831
- })
2832
- }, utils.filterDOMProps(props, { global: true })), scrollCheckProps), children);
2833
- };
2834
-
2835
- var __defProp$6 = Object.defineProperty;
2836
- var __defProps$6 = Object.defineProperties;
2837
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2838
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2839
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2840
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2841
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2842
- var __spreadValues$6 = (a, b) => {
2843
- for (var prop in b || (b = {}))
2844
- if (__hasOwnProp$6.call(b, prop))
2845
- __defNormalProp$6(a, prop, b[prop]);
2846
- if (__getOwnPropSymbols$6)
2847
- for (var prop of __getOwnPropSymbols$6(b)) {
2848
- if (__propIsEnum$6.call(b, prop))
2849
- __defNormalProp$6(a, prop, b[prop]);
2850
- }
2851
- return a;
2852
- };
2853
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2854
- var __objRest$4 = (source, exclude) => {
2855
- var target = {};
2856
- for (var prop in source)
2857
- if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
2858
- target[prop] = source[prop];
2859
- if (source != null && __getOwnPropSymbols$6)
2860
- for (var prop of __getOwnPropSymbols$6(source)) {
2861
- if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
2862
- target[prop] = source[prop];
2863
- }
2864
- return target;
2865
- };
2866
- const SidebarList = (_a) => {
2867
- var _b = _a, {
2868
- elementType = "ul",
2276
+ return /* @__PURE__ */ React.createElement(
2277
+ RootNode,
2278
+ {
2279
+ ref: sidebarBody,
2280
+ tabIndex: -1,
2281
+ className: clsx(styles$6["sapphire-sidebar__body"], {
2282
+ [styles$6["sapphire-sidebar__body--scrolled"]]: isScrolled
2283
+ }),
2284
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
2285
+ ...scrollCheckProps
2286
+ },
2869
2287
  children
2870
- } = _b, props = __objRest$4(_b, [
2871
- "elementType",
2872
- "children"
2873
- ]);
2288
+ );
2289
+ };
2290
+
2291
+ const SidebarList = ({
2292
+ elementType = "ul",
2293
+ children,
2294
+ ...props
2295
+ }) => {
2874
2296
  const RootNode = elementType;
2875
- return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadProps$6(__spreadValues$6({}, utils.filterDOMProps(props, { global: true })), {
2876
- className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-list"])
2877
- }), children);
2297
+ return /* @__PURE__ */ React.createElement(
2298
+ RootNode,
2299
+ {
2300
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
2301
+ className: clsx(styles$6["sapphire-sidebar__nav-list"])
2302
+ },
2303
+ children
2304
+ );
2878
2305
  };
2879
2306
 
2880
2307
  const _Sidebar = Object.assign(Sidebar, {
@@ -2888,25 +2315,6 @@ const _Sidebar = Object.assign(Sidebar, {
2888
2315
  PanelTrigger: SidebarPanelTrigger
2889
2316
  });
2890
2317
 
2891
- var __defProp$5 = Object.defineProperty;
2892
- var __defProps$5 = Object.defineProperties;
2893
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2894
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2895
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2896
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2897
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2898
- var __spreadValues$5 = (a, b) => {
2899
- for (var prop in b || (b = {}))
2900
- if (__hasOwnProp$5.call(b, prop))
2901
- __defNormalProp$5(a, prop, b[prop]);
2902
- if (__getOwnPropSymbols$5)
2903
- for (var prop of __getOwnPropSymbols$5(b)) {
2904
- if (__propIsEnum$5.call(b, prop))
2905
- __defNormalProp$5(a, prop, b[prop]);
2906
- }
2907
- return a;
2908
- };
2909
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2910
2318
  const ProgressIndicator = (props) => {
2911
2319
  const {
2912
2320
  maxValue = 100,
@@ -2916,332 +2324,265 @@ const ProgressIndicator = (props) => {
2916
2324
  } = props;
2917
2325
  sapphireReact.useThemeCheck();
2918
2326
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2919
- const { progressBarProps } = progress.useProgressBar(__spreadProps$5(__spreadValues$5({}, props), {
2327
+ const { progressBarProps } = useProgressBar.useProgressBar({
2328
+ ...props,
2920
2329
  minValue: 0,
2921
2330
  valueLabel: ariaValueText
2922
- }));
2331
+ });
2923
2332
  const minValue = 0;
2924
2333
  const value = Math.min(Math.max(realValue, minValue), maxValue);
2925
2334
  const widthPercentage = value / maxValue * 100;
2926
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, utils.filterDOMProps(props, { global: true })), {
2927
- className: clsx__default["default"](styles__default$7["default"]["sapphire-progress"])
2928
- }), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, progressBarProps), {
2929
- className: styles__default$7["default"]["sapphire-progress--indicator"],
2930
- style: __spreadProps$5(__spreadValues$5({}, styleProps), { width: `${widthPercentage}%` }),
2931
- "aria-label": "aria-label" in props ? props["aria-label"] : void 0,
2932
- "aria-labelledby": "aria-labelledby" in props ? props["aria-labelledby"] : void 0
2933
- })), segments > 1 && /* @__PURE__ */ React__default["default"].createElement("div", {
2934
- className: styles__default$7["default"]["sapphire-progress--segments"]
2935
- }, Array.from({ length: segments }, (_, index) => /* @__PURE__ */ React__default["default"].createElement("span", {
2936
- key: index
2937
- }))));
2938
- };
2939
-
2940
- var __defProp$4 = Object.defineProperty;
2941
- var __defProps$4 = Object.defineProperties;
2942
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2943
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2944
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2945
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2946
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2947
- var __spreadValues$4 = (a, b) => {
2948
- for (var prop in b || (b = {}))
2949
- if (__hasOwnProp$4.call(b, prop))
2950
- __defNormalProp$4(a, prop, b[prop]);
2951
- if (__getOwnPropSymbols$4)
2952
- for (var prop of __getOwnPropSymbols$4(b)) {
2953
- if (__propIsEnum$4.call(b, prop))
2954
- __defNormalProp$4(a, prop, b[prop]);
2955
- }
2956
- return a;
2957
- };
2958
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2959
- var __objRest$3 = (source, exclude) => {
2960
- var target = {};
2961
- for (var prop in source)
2962
- if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
2963
- target[prop] = source[prop];
2964
- if (source != null && __getOwnPropSymbols$4)
2965
- for (var prop of __getOwnPropSymbols$4(source)) {
2966
- if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
2967
- target[prop] = source[prop];
2968
- }
2969
- return target;
2335
+ return /* @__PURE__ */ React.createElement(
2336
+ "div",
2337
+ {
2338
+ ...filterDOMProps.filterDOMProps(props, { global: true }),
2339
+ className: clsx(styles$7["sapphire-progress"])
2340
+ },
2341
+ /* @__PURE__ */ React.createElement(
2342
+ "div",
2343
+ {
2344
+ ...progressBarProps,
2345
+ className: styles$7["sapphire-progress--indicator"],
2346
+ style: { ...styleProps, width: `${widthPercentage}%` },
2347
+ "aria-label": "aria-label" in props ? props["aria-label"] : void 0,
2348
+ "aria-labelledby": "aria-labelledby" in props ? props["aria-labelledby"] : void 0
2349
+ }
2350
+ ),
2351
+ segments > 1 && /* @__PURE__ */ React.createElement("div", { className: styles$7["sapphire-progress--segments"] }, Array.from({ length: segments }, (_, index) => /* @__PURE__ */ React.createElement("span", { key: index })))
2352
+ );
2970
2353
  };
2971
- const Slider = (_a) => {
2972
- var _b = _a, {
2973
- label,
2974
- labelPlacement = "above",
2975
- note,
2976
- name
2977
- } = _b, props = __objRest$3(_b, [
2978
- "label",
2979
- "labelPlacement",
2980
- "note",
2981
- "name"
2982
- ]);
2354
+
2355
+ const Slider = ({
2356
+ label,
2357
+ labelPlacement = "above",
2358
+ note,
2359
+ name,
2360
+ ...props
2361
+ }) => {
2983
2362
  sapphireReact.useThemeCheck();
2984
2363
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2985
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$4(__spreadValues$4({}, styleProps), {
2986
- labelPlacement
2987
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, null, label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, null, label)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Slider, __spreadProps$4(__spreadValues$4({}, props), {
2988
- style: { height: "100%" }
2989
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
2990
- className: clsx__default["default"](styles__default$8["default"]["sapphire-slider"]),
2991
- role: "slider"
2992
- }, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderTrack, {
2993
- className: ({ isDisabled }) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__track"], {
2994
- [styles__default$8["default"]["is-disabled"]]: isDisabled
2995
- })
2996
- }, ({ state }) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
2997
- className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-remaining"])
2998
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
2999
- className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-fill"]),
3000
- style: { width: state.getThumbPercent(0) * 100 + "%" }
3001
- }), /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderThumb, {
3002
- name,
3003
- className: (state2) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__thumb"], {
3004
- [styles__default$8["default"]["is-focus"]]: state2.isFocusVisible
3005
- }),
3006
- style: ({ state: state2 }) => {
3007
- const percent = Math.min(3 + state2.getThumbPercent(0) * 94, 100);
3008
- return {
3009
- left: `${percent}%`
3010
- };
3011
- }
3012
- })))))), note && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, note)));
2364
+ return /* @__PURE__ */ React.createElement(sapphireReact.Field, { ...styleProps, labelPlacement }, /* @__PURE__ */ React.createElement(sapphireReact.Field.Context, null, label && /* @__PURE__ */ React.createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React.createElement(sapphireReact.Label, null, label)), /* @__PURE__ */ React.createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React.createElement(reactAriaComponents.Slider, { ...props, style: { height: "100%" } }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles$8["sapphire-slider"]), role: "slider" }, /* @__PURE__ */ React.createElement(
2365
+ reactAriaComponents.SliderTrack,
2366
+ {
2367
+ className: ({ isDisabled }) => clsx(styles$8["sapphire-slider__track"], {
2368
+ [styles$8["is-disabled"]]: isDisabled
2369
+ })
2370
+ },
2371
+ ({ state }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
2372
+ "div",
2373
+ {
2374
+ className: clsx(
2375
+ styles$8["sapphire-slider__track-remaining"]
2376
+ )
2377
+ }
2378
+ ), /* @__PURE__ */ React.createElement(
2379
+ "div",
2380
+ {
2381
+ className: clsx(styles$8["sapphire-slider__track-fill"]),
2382
+ style: { width: state.getThumbPercent(0) * 100 + "%" }
2383
+ }
2384
+ ), /* @__PURE__ */ React.createElement(
2385
+ reactAriaComponents.SliderThumb,
2386
+ {
2387
+ name,
2388
+ className: (state2) => clsx(styles$8["sapphire-slider__thumb"], {
2389
+ [styles$8["is-focus"]]: state2.isFocusVisible
2390
+ }),
2391
+ style: ({ state: state2 }) => {
2392
+ const percent = Math.min(
2393
+ 3 + state2.getThumbPercent(0) * 94,
2394
+ 100
2395
+ );
2396
+ return {
2397
+ left: `${percent}%`
2398
+ };
2399
+ }
2400
+ }
2401
+ ))
2402
+ )))), note && /* @__PURE__ */ React.createElement(sapphireReact.Field.Footer, null, note)));
3013
2403
  };
3014
2404
 
3015
2405
  const _Slider = Object.assign(Slider, {
3016
2406
  Note: sapphireReact.Field.Note
3017
2407
  });
3018
2408
 
3019
- var __defProp$3 = Object.defineProperty;
3020
- var __defProps$3 = Object.defineProperties;
3021
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
3022
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3023
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3024
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3025
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3026
- var __spreadValues$3 = (a, b) => {
3027
- for (var prop in b || (b = {}))
3028
- if (__hasOwnProp$3.call(b, prop))
3029
- __defNormalProp$3(a, prop, b[prop]);
3030
- if (__getOwnPropSymbols$3)
3031
- for (var prop of __getOwnPropSymbols$3(b)) {
3032
- if (__propIsEnum$3.call(b, prop))
3033
- __defNormalProp$3(a, prop, b[prop]);
3034
- }
3035
- return a;
3036
- };
3037
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
3038
- var __objRest$2 = (source, exclude) => {
3039
- var target = {};
3040
- for (var prop in source)
3041
- if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
3042
- target[prop] = source[prop];
3043
- if (source != null && __getOwnPropSymbols$3)
3044
- for (var prop of __getOwnPropSymbols$3(source)) {
3045
- if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
3046
- target[prop] = source[prop];
3047
- }
3048
- return target;
3049
- };
3050
2409
  function Tag(props) {
3051
2410
  sapphireReact.useThemeCheck();
3052
2411
  const { hasError = false, item, state } = props;
3053
2412
  const ref = React.useRef(null);
3054
- const _a = tag.useTag(props, state, ref), {
2413
+ const {
3055
2414
  gridCellProps,
3056
2415
  isDisabled,
3057
2416
  isFocused,
3058
2417
  isPressed,
3059
2418
  removeButtonProps,
3060
- rowProps: _b
3061
- } = _a, _c = _b, { onKeyDown } = _c, rowProps = __objRest$2(_c, ["onKeyDown"]), otherProps = __objRest$2(_a, [
3062
- "gridCellProps",
3063
- "isDisabled",
3064
- "isFocused",
3065
- "isPressed",
3066
- "removeButtonProps",
3067
- "rowProps"
3068
- ]);
3069
- const { hoverProps, isHovered } = interactions.useHover({ isDisabled });
2419
+ rowProps: { onKeyDown, ...rowProps },
2420
+ ...otherProps
2421
+ } = useTagGroup.useTag(props, state, ref);
2422
+ const { hoverProps, isHovered } = useHover.useHover({ isDisabled });
3070
2423
  const hasAction = otherProps.hasAction;
3071
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.TooltipIfNeeded, {
3072
- title: item.rendered
3073
- }, (tooltipRef, tooltipProps) => {
3074
- const _a2 = tooltipProps || {}, { ref: tooltipTargetRef } = _a2, restTooltipProps = __objRest$2(_a2, ["ref"]);
3075
- return /* @__PURE__ */ React__default["default"].createElement(focus.FocusRing, {
3076
- focusRingClass: styles__default$9["default"]["is-focus"]
3077
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadValues$3(__spreadProps$3(__spreadValues$3({
3078
- ref: utils.mergeRefs(ref, tooltipTargetRef)
3079
- }, utils.mergeProps({
3080
- onKeyDown: (e) => {
3081
- if (e.key !== " ") {
3082
- onKeyDown == null ? void 0 : onKeyDown(e);
3083
- } else {
3084
- e.preventDefault();
3085
- }
3086
- }
3087
- }, rowProps, hoverProps, restTooltipProps)), {
3088
- className: clsx__default["default"](styles__default$9["default"]["sapphire-tag"], styles__default$9["default"]["js-focus"], styles__default$9["default"]["js-hover"], {
3089
- [styles__default$9["default"]["sapphire-tag--actionable"]]: hasAction,
3090
- [styles__default$9["default"]["is-active"]]: hasAction && isPressed,
3091
- [styles__default$9["default"]["is-hover"]]: hasAction && isHovered,
3092
- [styles__default$9["default"]["is-disabled"]]: isDisabled
3093
- })
3094
- }), hasError ? { "aria-invalid": true } : {}), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$3(__spreadValues$3({}, gridCellProps), {
3095
- className: styles__default$9["default"]["sapphire-tag__content"]
3096
- }), hasError && !isDisabled && /* @__PURE__ */ React__default["default"].createElement(IconError, null), /* @__PURE__ */ React__default["default"].createElement("span", {
3097
- ref: tooltipRef,
3098
- className: styles__default$9["default"]["sapphire-tag__label"]
3099
- }, item.rendered), !isDisabled && props.allowsRemoving && /* @__PURE__ */ React__default["default"].createElement(RemoveButton, __spreadValues$3({}, removeButtonProps)))));
2424
+ return /* @__PURE__ */ React.createElement(sapphireReact.TooltipIfNeeded, { title: item.rendered }, (tooltipRef, tooltipProps) => {
2425
+ const { ref: tooltipTargetRef, ...restTooltipProps } = tooltipProps || {};
2426
+ return /* @__PURE__ */ React.createElement(FocusRing.FocusRing, { focusRingClass: styles$9["is-focus"] }, /* @__PURE__ */ React.createElement(
2427
+ "div",
2428
+ {
2429
+ ref: mergeRefs.mergeRefs(ref, tooltipTargetRef),
2430
+ ...mergeProps.mergeProps(
2431
+ {
2432
+ onKeyDown: (e) => {
2433
+ if (e.key !== " ") {
2434
+ onKeyDown?.(e);
2435
+ } else {
2436
+ e.preventDefault();
2437
+ }
2438
+ }
2439
+ },
2440
+ rowProps,
2441
+ hoverProps,
2442
+ restTooltipProps
2443
+ ),
2444
+ className: clsx(
2445
+ styles$9["sapphire-tag"],
2446
+ styles$9["js-focus"],
2447
+ styles$9["js-hover"],
2448
+ {
2449
+ [styles$9["sapphire-tag--actionable"]]: hasAction,
2450
+ [styles$9["is-active"]]: hasAction && isPressed,
2451
+ [styles$9["is-hover"]]: hasAction && isHovered,
2452
+ [styles$9["is-disabled"]]: isDisabled
2453
+ }
2454
+ ),
2455
+ ...hasError ? { "aria-invalid": true } : {}
2456
+ },
2457
+ /* @__PURE__ */ React.createElement(
2458
+ "div",
2459
+ {
2460
+ ...gridCellProps,
2461
+ className: styles$9["sapphire-tag__content"]
2462
+ },
2463
+ hasError && !isDisabled && /* @__PURE__ */ React.createElement(IconError, null),
2464
+ /* @__PURE__ */ React.createElement(
2465
+ "span",
2466
+ {
2467
+ ref: tooltipRef,
2468
+ className: styles$9["sapphire-tag__label"]
2469
+ },
2470
+ item.rendered
2471
+ ),
2472
+ !isDisabled && props.allowsRemoving && /* @__PURE__ */ React.createElement(RemoveButton, { ...removeButtonProps })
2473
+ )
2474
+ ));
3100
2475
  });
3101
2476
  }
3102
2477
  function RemoveButton(removeButtonProps) {
3103
2478
  const buttonRef = React.useRef(null);
3104
- const { buttonProps } = button.useButton(removeButtonProps, buttonRef);
3105
- return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$3(__spreadValues$3({}, buttonProps), {
3106
- className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__button"], styles__default$9["default"]["js-focus"])
3107
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
3108
- size: "sm"
3109
- }, /* @__PURE__ */ React__default["default"].createElement(react.Close, null)));
2479
+ const { buttonProps } = useButton.useButton(removeButtonProps, buttonRef);
2480
+ return /* @__PURE__ */ React.createElement(
2481
+ "button",
2482
+ {
2483
+ ...buttonProps,
2484
+ className: clsx(styles$9["sapphire-tag__button"], styles$9["js-focus"])
2485
+ },
2486
+ /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: "sm" }, /* @__PURE__ */ React.createElement(react.Close, null))
2487
+ );
3110
2488
  }
3111
2489
  const IconError = () => {
3112
- return /* @__PURE__ */ React__default["default"].createElement("span", {
3113
- className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__error-icon"])
3114
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
3115
- size: "sm"
3116
- }, /* @__PURE__ */ React__default["default"].createElement(react.Error, null)));
3117
- };
3118
-
3119
- var __defProp$2 = Object.defineProperty;
3120
- var __defProps$2 = Object.defineProperties;
3121
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
3122
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
3123
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
3124
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
3125
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3126
- var __spreadValues$2 = (a, b) => {
3127
- for (var prop in b || (b = {}))
3128
- if (__hasOwnProp$2.call(b, prop))
3129
- __defNormalProp$2(a, prop, b[prop]);
3130
- if (__getOwnPropSymbols$2)
3131
- for (var prop of __getOwnPropSymbols$2(b)) {
3132
- if (__propIsEnum$2.call(b, prop))
3133
- __defNormalProp$2(a, prop, b[prop]);
3134
- }
3135
- return a;
3136
- };
3137
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
3138
- var __objRest$1 = (source, exclude) => {
3139
- var target = {};
3140
- for (var prop in source)
3141
- if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
3142
- target[prop] = source[prop];
3143
- if (source != null && __getOwnPropSymbols$2)
3144
- for (var prop of __getOwnPropSymbols$2(source)) {
3145
- if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
3146
- target[prop] = source[prop];
3147
- }
3148
- return target;
2490
+ return /* @__PURE__ */ React.createElement("span", { className: clsx(styles$9["sapphire-tag__error-icon"]) }, /* @__PURE__ */ React.createElement(sapphireReact.Icon, { size: "sm" }, /* @__PURE__ */ React.createElement(react.Error, null)));
3149
2491
  };
2492
+
3150
2493
  function TagGroup(props) {
3151
2494
  sapphireReact.useThemeCheck();
3152
- const _a = props, {
2495
+ const {
3153
2496
  contextualHelp,
3154
2497
  errorMessage,
3155
2498
  label: labelText,
3156
2499
  labelPlacement = "above",
3157
2500
  note,
3158
- onRemove: originalOnRemove
3159
- } = _a, otherProps = __objRest$1(_a, [
3160
- "contextualHelp",
3161
- "errorMessage",
3162
- "label",
3163
- "labelPlacement",
3164
- "note",
3165
- "onRemove"
3166
- ]);
2501
+ onRemove: originalOnRemove,
2502
+ ...otherProps
2503
+ } = props;
3167
2504
  const ref = React.useRef(null);
3168
- const state = list.useListState(props);
2505
+ const state = useListState.useListState(props);
3169
2506
  const onRemove = originalOnRemove ? (keys) => {
3170
- console.warn("The `onRemove` prop is deprecated and will be removed in future versions. Use the `onRemove` prop on the `TagItem` component instead.");
2507
+ console.warn(
2508
+ "The `onRemove` prop is deprecated and will be removed in future versions. Use the `onRemove` prop on the `TagItem` component instead."
2509
+ );
3171
2510
  originalOnRemove(keys);
3172
2511
  } : (keys) => {
3173
2512
  Array.from(keys).forEach((key) => {
3174
- var _a2, _b;
3175
2513
  const item = state.collection.getItem(key);
3176
2514
  if (item) {
3177
- (_b = (_a2 = item.props).onRemove) == null ? void 0 : _b.call(_a2);
2515
+ item.props.onRemove?.();
3178
2516
  }
3179
2517
  });
3180
2518
  };
3181
- const { descriptionProps, gridProps, labelProps, errorMessageProps } = tag.useTagGroup(__spreadProps$2(__spreadValues$2({}, props), { onRemove }), state, ref);
3182
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$2(__spreadValues$2({}, otherProps), {
3183
- labelPlacement,
3184
- labelVerticalAlignment: "top",
3185
- noDefaultWidth: true
3186
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, {
3187
- descriptionProps: errorMessage ? errorMessageProps : descriptionProps
3188
- }, (labelText || contextualHelp) && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, __spreadProps$2(__spreadValues$2({}, labelProps), {
3189
- contextualHelp
3190
- }), labelText)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$2(__spreadValues$2({}, gridProps), {
3191
- ref,
3192
- className: styles__default$9["default"]["sapphire-tag-group"]
3193
- }), Array.from(state.collection).map((item) => /* @__PURE__ */ React__default["default"].createElement(Tag, {
3194
- key: item.key,
3195
- item,
3196
- state,
3197
- hasError: item.props.hasError,
3198
- allowsRemoving: !!originalOnRemove || !!item.props.onRemove
3199
- })))), (note || errorMessage) && (errorMessage ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
3200
- variant: "error"
3201
- }, errorMessage)) : /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, note))));
2519
+ const { descriptionProps, gridProps, labelProps, errorMessageProps } = useTagGroup.useTagGroup({ ...props, onRemove }, state, ref);
2520
+ return /* @__PURE__ */ React.createElement(
2521
+ sapphireReact.Field,
2522
+ {
2523
+ ...otherProps,
2524
+ labelPlacement,
2525
+ labelVerticalAlignment: "top",
2526
+ noDefaultWidth: true
2527
+ },
2528
+ /* @__PURE__ */ React.createElement(
2529
+ sapphireReact.Field.Context,
2530
+ {
2531
+ descriptionProps: errorMessage ? errorMessageProps : descriptionProps
2532
+ },
2533
+ (labelText || contextualHelp) && /* @__PURE__ */ React.createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React.createElement(sapphireReact.Label, { ...labelProps, contextualHelp }, labelText)),
2534
+ /* @__PURE__ */ React.createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React.createElement(
2535
+ "div",
2536
+ {
2537
+ ...gridProps,
2538
+ ref,
2539
+ className: styles$9["sapphire-tag-group"]
2540
+ },
2541
+ Array.from(state.collection).map((item) => /* @__PURE__ */ React.createElement(
2542
+ Tag,
2543
+ {
2544
+ key: item.key,
2545
+ item,
2546
+ state,
2547
+ hasError: item.props.hasError,
2548
+ allowsRemoving: !!originalOnRemove || !!item.props.onRemove
2549
+ }
2550
+ ))
2551
+ )),
2552
+ (note || errorMessage) && (errorMessage ? /* @__PURE__ */ React.createElement(sapphireReact.Field.Footer, null, /* @__PURE__ */ React.createElement(sapphireReact.Field.Note, { variant: "error" }, errorMessage)) : /* @__PURE__ */ React.createElement(sapphireReact.Field.Footer, null, note))
2553
+ )
2554
+ );
3202
2555
  }
3203
2556
 
3204
- const TagItem = collections$1.Item;
3205
-
3206
- var __defProp$1 = Object.defineProperty;
3207
- var __defProps$1 = Object.defineProperties;
3208
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
3209
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3210
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3211
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3212
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3213
- var __spreadValues$1 = (a, b) => {
3214
- for (var prop in b || (b = {}))
3215
- if (__hasOwnProp$1.call(b, prop))
3216
- __defNormalProp$1(a, prop, b[prop]);
3217
- if (__getOwnPropSymbols$1)
3218
- for (var prop of __getOwnPropSymbols$1(b)) {
3219
- if (__propIsEnum$1.call(b, prop))
3220
- __defNormalProp$1(a, prop, b[prop]);
3221
- }
3222
- return a;
3223
- };
3224
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
3225
- const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.type === "minute" || segment.type === "dayPeriod" ? /* @__PURE__ */ React__default["default"].createElement(EditableSegment, {
3226
- segment,
3227
- state
3228
- }) : /* @__PURE__ */ React__default["default"].createElement(SeparatorSegment, {
3229
- segment
3230
- });
3231
- const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React__default["default"].createElement("span", {
3232
- "aria-hidden": "true",
3233
- className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__segment"], styles__default$a["default"]["sapphire-date-field__segment--separator"])
3234
- }, segment.text);
2557
+ const TagItem = Item.Item;
2558
+
2559
+ const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.type === "minute" || segment.type === "dayPeriod" ? /* @__PURE__ */ React.createElement(EditableSegment, { segment, state }) : /* @__PURE__ */ React.createElement(SeparatorSegment, { segment });
2560
+ const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React.createElement(
2561
+ "span",
2562
+ {
2563
+ "aria-hidden": "true",
2564
+ className: clsx(
2565
+ styles$a["sapphire-date-field__segment"],
2566
+ styles$a["sapphire-date-field__segment--separator"]
2567
+ )
2568
+ },
2569
+ segment.text
2570
+ );
3235
2571
  const EditableSegment = ({ segment, state }) => {
3236
2572
  const ref = React.useRef(null);
3237
- const { segmentProps } = datepicker.useDateSegment(segment, state, ref);
3238
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$1(__spreadValues$1({}, segmentProps), {
3239
- style: segmentProps.style,
3240
- ref,
3241
- className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__segment"], {
3242
- [styles__default$a["default"]["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
3243
- })
3244
- }), segment.text);
2573
+ const { segmentProps } = useDateField.useDateSegment(segment, state, ref);
2574
+ return /* @__PURE__ */ React.createElement(
2575
+ "div",
2576
+ {
2577
+ ...segmentProps,
2578
+ style: segmentProps.style,
2579
+ ref,
2580
+ className: clsx(styles$a["sapphire-date-field__segment"], {
2581
+ [styles$a["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
2582
+ })
2583
+ },
2584
+ segment.text
2585
+ );
3245
2586
  };
3246
2587
 
3247
2588
  var clear$6 = "Nulstil";
@@ -3289,101 +2630,83 @@ var intlMessages = {
3289
2630
  "sv-SE": se
3290
2631
  };
3291
2632
 
3292
- var __defProp = Object.defineProperty;
3293
- var __defProps = Object.defineProperties;
3294
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3295
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3296
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3297
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3298
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3299
- var __spreadValues = (a, b) => {
3300
- for (var prop in b || (b = {}))
3301
- if (__hasOwnProp.call(b, prop))
3302
- __defNormalProp(a, prop, b[prop]);
3303
- if (__getOwnPropSymbols)
3304
- for (var prop of __getOwnPropSymbols(b)) {
3305
- if (__propIsEnum.call(b, prop))
3306
- __defNormalProp(a, prop, b[prop]);
3307
- }
3308
- return a;
3309
- };
3310
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3311
- var __objRest = (source, exclude) => {
3312
- var target = {};
3313
- for (var prop in source)
3314
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
3315
- target[prop] = source[prop];
3316
- if (source != null && __getOwnPropSymbols)
3317
- for (var prop of __getOwnPropSymbols(source)) {
3318
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
3319
- target[prop] = source[prop];
3320
- }
3321
- return target;
3322
- };
3323
2633
  const isAnySegmentModified = (segments) => segments.map(({ type, isPlaceholder }) => {
3324
2634
  return type !== "literal" && !isPlaceholder;
3325
2635
  }).some((isModified) => isModified);
3326
- function _TimeField(_a, ref) {
3327
- var _b = _a, {
3328
- size = "lg",
3329
- noClearButton = false,
3330
- error,
3331
- note,
3332
- contextualHelp,
3333
- necessityIndicator = false
3334
- } = _b, otherProps = __objRest(_b, [
3335
- "size",
3336
- "noClearButton",
3337
- "error",
3338
- "note",
3339
- "contextualHelp",
3340
- "necessityIndicator"
3341
- ]);
2636
+ function _TimeField({
2637
+ // TODO many other props
2638
+ size = "lg",
2639
+ noClearButton = false,
2640
+ error,
2641
+ note,
2642
+ contextualHelp,
2643
+ necessityIndicator = false,
2644
+ ...otherProps
2645
+ }, ref) {
3342
2646
  sapphireReact.useThemeCheck();
3343
- const timeFieldRef = utils.useObjectRef(ref);
3344
- const { locale } = i18n.useLocale();
2647
+ const timeFieldRef = useObjectRef.useObjectRef(ref);
2648
+ const { locale } = I18nProvider.useLocale();
3345
2649
  const formatMessage = i18n.useMessageFormatter(intlMessages);
3346
- const state = datepicker$1.useTimeFieldState(__spreadProps(__spreadValues({}, otherProps), {
2650
+ const state = useTimeFieldState.useTimeFieldState({
2651
+ ...otherProps,
3347
2652
  locale,
3348
2653
  isInvalid: error ? true : void 0
3349
- }));
3350
- const { fieldProps, labelProps } = datepicker.useTimeField(__spreadValues({}, otherProps), state, timeFieldRef);
3351
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps(__spreadValues({}, otherProps), {
3352
- ref,
3353
- size,
3354
- noShrink: true
3355
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, null, otherProps.label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, __spreadProps(__spreadValues({}, labelProps), {
3356
- size,
3357
- necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
3358
- contextualHelp
3359
- }), otherProps.label))), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
3360
- className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field"], {
3361
- [styles__default$a["default"]["sapphire-date-field--error"]]: state.isInvalid,
3362
- [styles__default$a["default"]["sapphire-date-field--no-clear-button"]]: noClearButton,
3363
- [styles__default$a["default"]["sapphire-date-field--no-calendar"]]: true,
3364
- [styles__default$a["default"]["sapphire-date-field--md"]]: size === "md"
3365
- })
3366
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps(__spreadValues({}, fieldProps), {
3367
- className: styles__default$a["default"]["sapphire-date-field__input"],
3368
- ref: timeFieldRef
3369
- }), state.segments.map((segment, i) => /* @__PURE__ */ React__default["default"].createElement(TimeSegment, {
3370
- key: i,
3371
- segment,
3372
- state
3373
- }))), !noClearButton && !otherProps.isReadOnly && !otherProps.isDisabled && isAnySegmentModified(state.segments) && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, {
3374
- "aria-label": formatMessage("clear"),
3375
- onPress: () => state.segments.forEach((segment) => state.clearSegment(segment.type)),
3376
- size: size === "md" ? "sm" : "md",
3377
- UNSAFE_className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__button"], styles__default$a["default"]["sapphire-date-field__button--clear"])
3378
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, null, /* @__PURE__ */ React__default["default"].createElement(react.CloseOutline, null))))), !!error && typeof error !== "boolean" || note ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, !!error && typeof error !== "boolean" ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
3379
- variant: "error"
3380
- }, error) : note ? note : null) : null);
2654
+ });
2655
+ const { fieldProps, labelProps } = useTimeField.useTimeField(
2656
+ { ...otherProps },
2657
+ state,
2658
+ timeFieldRef
2659
+ );
2660
+ return /* @__PURE__ */ React.createElement(sapphireReact.Field, { ...otherProps, ref, size, noShrink: true }, /* @__PURE__ */ React.createElement(sapphireReact.Field.Context, null, otherProps.label && /* @__PURE__ */ React.createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React.createElement(
2661
+ sapphireReact.Label,
2662
+ {
2663
+ ...labelProps,
2664
+ size,
2665
+ necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
2666
+ contextualHelp
2667
+ },
2668
+ otherProps.label
2669
+ ))), /* @__PURE__ */ React.createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React.createElement(
2670
+ "div",
2671
+ {
2672
+ className: clsx(styles$a["sapphire-date-field"], {
2673
+ [styles$a["sapphire-date-field--error"]]: state.isInvalid,
2674
+ [styles$a["sapphire-date-field--no-clear-button"]]: noClearButton,
2675
+ [styles$a["sapphire-date-field--no-calendar"]]: true,
2676
+ [styles$a["sapphire-date-field--md"]]: size === "md"
2677
+ })
2678
+ },
2679
+ /* @__PURE__ */ React.createElement(
2680
+ "div",
2681
+ {
2682
+ ...fieldProps,
2683
+ className: styles$a["sapphire-date-field__input"],
2684
+ ref: timeFieldRef
2685
+ },
2686
+ state.segments.map((segment, i) => /* @__PURE__ */ React.createElement(TimeSegment, { key: i, segment, state }))
2687
+ ),
2688
+ !noClearButton && !otherProps.isReadOnly && !otherProps.isDisabled && isAnySegmentModified(state.segments) && /* @__PURE__ */ React.createElement(
2689
+ sapphireReact.IconButton,
2690
+ {
2691
+ "aria-label": formatMessage("clear"),
2692
+ onPress: () => state.segments.forEach(
2693
+ (segment) => state.clearSegment(segment.type)
2694
+ ),
2695
+ size: size === "md" ? "sm" : "md",
2696
+ UNSAFE_className: clsx(
2697
+ styles$a["sapphire-date-field__button"],
2698
+ styles$a["sapphire-date-field__button--clear"]
2699
+ )
2700
+ },
2701
+ /* @__PURE__ */ React.createElement(sapphireReact.Icon, null, /* @__PURE__ */ React.createElement(react.CloseOutline, null))
2702
+ )
2703
+ )), !!error && typeof error !== "boolean" || note ? /* @__PURE__ */ React.createElement(sapphireReact.Field.Footer, null, !!error && typeof error !== "boolean" ? /* @__PURE__ */ React.createElement(sapphireReact.Field.Note, { variant: "error" }, error) : note ? note : null) : null);
3381
2704
  }
3382
2705
  const TimeField = React.forwardRef(_TimeField);
3383
2706
 
3384
- Object.defineProperty(exports, 'useLocale', {
2707
+ Object.defineProperty(exports, "useLocale", {
3385
2708
  enumerable: true,
3386
- get: function () { return i18n.useLocale; }
2709
+ get: function () { return I18nProvider.useLocale; }
3387
2710
  });
3388
2711
  exports.Accordion = _Accordion;
3389
2712
  exports.AccordionContext = AccordionContext;