@eos-ui/vue 0.1.1 → 0.2.1

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 (407) hide show
  1. package/THIRD_PARTY.md +1 -1
  2. package/dist/component-names.js +1 -1
  3. package/dist/component-names.js.map +1 -1
  4. package/dist/components/Actions/EActions.js.map +1 -1
  5. package/dist/components/Actions/EActions.vue.d.ts +3 -1
  6. package/dist/components/Actions/EActions.vue_vue_type_script_setup_true_lang.js +12 -3
  7. package/dist/components/Actions/EActions.vue_vue_type_script_setup_true_lang.js.map +1 -1
  8. package/dist/components/AppHeader/EAppHeader.js.map +1 -1
  9. package/dist/components/AppHeader/EAppHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/components/AppShell/EAppShell.js.map +1 -1
  11. package/dist/components/AppShell/EAppShell.vue.d.ts +2 -2
  12. package/dist/components/AppShell/EAppShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  13. package/dist/components/Avatar/EAvatar.js.map +1 -1
  14. package/dist/components/Avatar/EAvatar.vue.d.ts +4 -4
  15. package/dist/components/Avatar/EAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  16. package/dist/components/Breadcrumb/EBreadcrumb.js.map +1 -1
  17. package/dist/components/Breadcrumb/EBreadcrumb.vue.d.ts +2 -2
  18. package/dist/components/Breadcrumb/EBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/Button/EButton.js.map +1 -1
  20. package/dist/components/Button/EButton.vue.d.ts +5 -3
  21. package/dist/components/Button/EButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  22. package/dist/components/Calendar/ECalendar.js.map +1 -1
  23. package/dist/components/Calendar/ECalendar.vue.d.ts +12 -9
  24. package/dist/components/Calendar/ECalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  25. package/dist/components/Checkbox/ECheckbox.js.map +1 -1
  26. package/dist/components/Checkbox/ECheckbox.vue.d.ts +6 -3
  27. package/dist/components/Checkbox/ECheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  28. package/dist/components/CodeBlock/ECodeBlock.js.map +1 -1
  29. package/dist/components/CodeBlock/ECodeBlock.vue.d.ts +2 -2
  30. package/dist/components/CodeBlock/ECodeBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
  31. package/dist/components/ColorField/EColorField.js.map +1 -1
  32. package/dist/components/ColorField/EColorField.vue.d.ts +5 -3
  33. package/dist/components/ColorField/EColorField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  34. package/dist/components/Combobox/ECombobox.js.map +1 -1
  35. package/dist/components/Combobox/ECombobox.vue.d.ts +7 -5
  36. package/dist/components/Combobox/ECombobox.vue_vue_type_script_setup_true_lang.js +3 -2
  37. package/dist/components/Combobox/ECombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  38. package/dist/components/Combobox/EComboboxBase.js.map +1 -1
  39. package/dist/components/Combobox/EComboboxBase.vue.d.ts +6 -14
  40. package/dist/components/Combobox/EComboboxBase.vue_vue_type_script_setup_true_lang.js +9 -8
  41. package/dist/components/Combobox/EComboboxBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/components/Combobox/EComboboxOption.js.map +1 -1
  43. package/dist/components/Combobox/EComboboxOption.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/dist/components/Combobox/EComboboxOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/Combobox/{EHighlight.js → matchHighlight.js} +3 -3
  46. package/dist/components/Combobox/matchHighlight.js.map +1 -0
  47. package/dist/components/Combobox/types.d.ts +13 -8
  48. package/dist/components/CurrencyField/ECurrencyField.js.map +1 -1
  49. package/dist/components/CurrencyField/ECurrencyField.vue.d.ts +8 -6
  50. package/dist/components/CurrencyField/ECurrencyField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  51. package/dist/components/DataGrid/EDataGrid.js.map +1 -1
  52. package/dist/components/DataGrid/EDataGrid.vue.d.ts +20 -15
  53. package/dist/components/DataGrid/EDataGrid.vue_vue_type_script_setup_true_lang.js +213 -213
  54. package/dist/components/DataGrid/EDataGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/components/DatePicker/EDatePicker.js.map +1 -1
  56. package/dist/components/DatePicker/EDatePicker.vue.d.ts +9 -6
  57. package/dist/components/DatePicker/EDatePicker.vue_vue_type_script_setup_true_lang.js +10 -10
  58. package/dist/components/DatePicker/EDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  59. package/dist/components/Definition/EDefinition.js +8 -0
  60. package/dist/components/Definition/EDefinition.js.map +1 -0
  61. package/dist/components/{Popover/EPopover.vue.d.ts → Definition/EDefinition.vue.d.ts} +2 -1
  62. package/dist/components/{Popover/EPopover.vue_vue_type_script_setup_true_lang.js → Definition/EDefinition.vue_vue_type_script_setup_true_lang.js} +4 -4
  63. package/dist/components/Definition/EDefinition.vue_vue_type_script_setup_true_lang.js.map +1 -0
  64. package/dist/components/Definition/index.d.ts +1 -0
  65. package/dist/components/DescriptionList/EDescriptionList.js.map +1 -1
  66. package/dist/components/DescriptionList/EDescriptionList.vue.d.ts +32 -5
  67. package/dist/components/DescriptionList/EDescriptionList.vue_vue_type_script_setup_true_lang.js +70 -8
  68. package/dist/components/DescriptionList/EDescriptionList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/Dialog/DialogFrame.js.map +1 -1
  70. package/dist/components/Dialog/DialogFrame.vue.d.ts +1 -0
  71. package/dist/components/Dialog/DialogFrame.vue_vue_type_script_setup_true_lang.js +19 -18
  72. package/dist/components/Dialog/DialogFrame.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/Dialog/EDialog.js.map +1 -1
  74. package/dist/components/Dialog/EDialog.vue.d.ts +4 -1
  75. package/dist/components/Dialog/EDialog.vue_vue_type_script_setup_true_lang.js +3 -0
  76. package/dist/components/Dialog/EDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/Disclosure/EDisclosure.js.map +1 -1
  78. package/dist/components/Disclosure/EDisclosure.vue.d.ts +6 -9
  79. package/dist/components/Disclosure/EDisclosure.vue_vue_type_script_setup_true_lang.js +14 -19
  80. package/dist/components/Disclosure/EDisclosure.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/components/Drawer/EDrawer.js.map +1 -1
  82. package/dist/components/Drawer/EDrawer.vue.d.ts +4 -1
  83. package/dist/components/Drawer/EDrawer.vue_vue_type_script_setup_true_lang.js +3 -0
  84. package/dist/components/Drawer/EDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/components/EmptyState/EEmptyState.js.map +1 -1
  86. package/dist/components/EmptyState/EEmptyState.vue.d.ts +1 -1
  87. package/dist/components/EmptyState/EEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/ExpandableRow/EExpandableRow.js +8 -0
  89. package/dist/components/ExpandableRow/EExpandableRow.js.map +1 -0
  90. package/dist/components/{ButtonGroup/EButtonGroup.vue.d.ts → ExpandableRow/EExpandableRow.vue.d.ts} +12 -4
  91. package/dist/components/ExpandableRow/EExpandableRow.vue_vue_type_script_setup_true_lang.js +40 -0
  92. package/dist/components/ExpandableRow/EExpandableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  93. package/dist/components/ExpandableRow/index.d.ts +1 -0
  94. package/dist/components/Field/EField.js.map +1 -1
  95. package/dist/components/Field/EField.vue.d.ts +1 -1
  96. package/dist/components/Field/EField.vue_vue_type_script_setup_true_lang.js +4 -4
  97. package/dist/components/Field/EField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/components/Field/labelProps.d.ts +2 -2
  99. package/dist/components/Fieldset/EFieldset.js.map +1 -1
  100. package/dist/components/Fieldset/EFieldset.vue.d.ts +5 -3
  101. package/dist/components/Fieldset/EFieldset.vue_vue_type_script_setup_true_lang.js +54 -35
  102. package/dist/components/Fieldset/EFieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
  103. package/dist/components/Grid/EGrid.js.map +1 -1
  104. package/dist/components/Grid/EGrid.vue.d.ts +5 -2
  105. package/dist/components/Grid/EGrid.vue_vue_type_script_setup_true_lang.js +15 -11
  106. package/dist/components/Grid/EGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  107. package/dist/components/Heading/EHeading.js.map +1 -1
  108. package/dist/components/Heading/EHeading.vue.d.ts +1 -1
  109. package/dist/components/Heading/EHeading.vue_vue_type_script_setup_true_lang.js +10 -10
  110. package/dist/components/Heading/EHeading.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/Highlight/EHighlight.js.map +1 -1
  112. package/dist/components/Highlight/EHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -1
  113. package/dist/components/IconButton/EIconButton.js.map +1 -1
  114. package/dist/components/IconButton/EIconButton.vue.d.ts +1 -0
  115. package/dist/components/IconButton/EIconButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  116. package/dist/components/Inline/EInline.js.map +1 -1
  117. package/dist/components/Inline/EInline.vue.d.ts +3 -3
  118. package/dist/components/Inline/EInline.vue_vue_type_script_setup_true_lang.js.map +1 -1
  119. package/dist/components/Kbd/EKbd.js.map +1 -1
  120. package/dist/components/Kbd/EKbd.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/components/Link/ELink.js.map +1 -1
  122. package/dist/components/Link/ELink.vue.d.ts +2 -2
  123. package/dist/components/Link/ELink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/Menu/EMenu.js.map +1 -1
  125. package/dist/components/Menu/EMenu.vue.d.ts +4 -3
  126. package/dist/components/Menu/EMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  127. package/dist/components/Menu/EMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  128. package/dist/components/NavList/ENavList.js.map +1 -1
  129. package/dist/components/NavList/ENavList.vue.d.ts +7 -9
  130. package/dist/components/NavList/ENavList.vue_vue_type_script_setup_true_lang.js +2 -3
  131. package/dist/components/NavList/ENavList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/{Tabs → NavList}/LinkNav.js +1 -1
  133. package/dist/components/NavList/LinkNav.js.map +1 -0
  134. package/dist/components/{Tabs → NavList}/LinkNav.vue_vue_type_script_setup_true_lang.js +1 -1
  135. package/dist/components/NavList/LinkNav.vue_vue_type_script_setup_true_lang.js.map +1 -0
  136. package/dist/components/Notice/ENotice.js.map +1 -1
  137. package/dist/components/Notice/ENotice.vue.d.ts +2 -2
  138. package/dist/components/Notice/ENotice.vue_vue_type_script_setup_true_lang.js.map +1 -1
  139. package/dist/components/NumberField/ENumberField.js.map +1 -1
  140. package/dist/components/NumberField/ENumberField.vue.d.ts +5 -3
  141. package/dist/components/NumberField/ENumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  142. package/dist/components/OtpField/EOtpField.js.map +1 -1
  143. package/dist/components/OtpField/EOtpField.vue.d.ts +10 -8
  144. package/dist/components/OtpField/EOtpField.vue_vue_type_script_setup_true_lang.js +2 -2
  145. package/dist/components/OtpField/EOtpField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/PageHeader/EPageHeader.js.map +1 -1
  147. package/dist/components/PageHeader/EPageHeader.vue.d.ts +1 -1
  148. package/dist/components/PageHeader/EPageHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  149. package/dist/components/Pagination/EPagination.js.map +1 -1
  150. package/dist/components/Pagination/EPagination.vue.d.ts +1 -0
  151. package/dist/components/Pagination/EPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  152. package/dist/components/PasswordField/EPasswordField.js.map +1 -1
  153. package/dist/components/PasswordField/EPasswordField.vue.d.ts +14 -10
  154. package/dist/components/PasswordField/EPasswordField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  155. package/dist/components/PhoneField/EPhoneField.js.map +1 -1
  156. package/dist/components/PhoneField/EPhoneField.vue.d.ts +6 -4
  157. package/dist/components/PhoneField/EPhoneField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  158. package/dist/components/Progress/EProgress.js.map +1 -1
  159. package/dist/components/Progress/EProgress.vue.d.ts +5 -5
  160. package/dist/components/Progress/EProgress.vue_vue_type_script_setup_true_lang.js +20 -14
  161. package/dist/components/Progress/EProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/RadioGroup/ERadioGroup.js.map +1 -1
  163. package/dist/components/RadioGroup/ERadioGroup.vue.d.ts +8 -4
  164. package/dist/components/RadioGroup/ERadioGroup.vue_vue_type_script_setup_true_lang.js +1 -1
  165. package/dist/components/RadioGroup/ERadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/components/RangePicker/ERangePicker.js.map +1 -1
  167. package/dist/components/RangePicker/ERangePicker.vue.d.ts +12 -8
  168. package/dist/components/RangePicker/ERangePicker.vue_vue_type_script_setup_true_lang.js +65 -65
  169. package/dist/components/RangePicker/ERangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/components/SearchBar/ESearchBar.js.map +1 -1
  171. package/dist/components/SearchBar/ESearchBar.vue.d.ts +8 -7
  172. package/dist/components/SearchBar/ESearchBar.vue_vue_type_script_setup_true_lang.js +1 -1
  173. package/dist/components/SearchBar/ESearchBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/components/SearchResults/ESearchResults.js.map +1 -1
  175. package/dist/components/SearchResults/ESearchResults.vue.d.ts +3 -3
  176. package/dist/components/SearchResults/ESearchResults.vue_vue_type_script_setup_true_lang.js +1 -1
  177. package/dist/components/SearchResults/ESearchResults.vue_vue_type_script_setup_true_lang.js.map +1 -1
  178. package/dist/components/Segmented/ESegmented.js.map +1 -1
  179. package/dist/components/Segmented/ESegmented.vue.d.ts +10 -6
  180. package/dist/components/Segmented/ESegmented.vue_vue_type_script_setup_true_lang.js.map +1 -1
  181. package/dist/components/Select/ESelect.js.map +1 -1
  182. package/dist/components/Select/ESelect.vue.d.ts +9 -6
  183. package/dist/components/Select/ESelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  184. package/dist/components/Select/ESelectControl.vue.d.ts +2 -2
  185. package/dist/components/Select/ESelectControl.vue_vue_type_script_setup_true_lang.js +6 -6
  186. package/dist/components/Select/options.d.ts +1 -1
  187. package/dist/components/Select/options.js.map +1 -1
  188. package/dist/components/SignatureField/ESignatureField.js.map +1 -1
  189. package/dist/components/SignatureField/ESignatureField.vue.d.ts +14 -10
  190. package/dist/components/SignatureField/ESignatureField.vue_vue_type_script_setup_true_lang.js +4 -4
  191. package/dist/components/SignatureField/ESignatureField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  192. package/dist/components/SignaturePad/ESignaturePad.js.map +1 -1
  193. package/dist/components/SignaturePad/ESignaturePad.vue.d.ts +3 -1
  194. package/dist/components/SignaturePad/ESignaturePad.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/components/Skeleton/ESkeleton.js.map +1 -1
  196. package/dist/components/Skeleton/ESkeleton.vue.d.ts +3 -3
  197. package/dist/components/Skeleton/ESkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/Stack/EStack.js.map +1 -1
  199. package/dist/components/Stack/EStack.vue.d.ts +2 -2
  200. package/dist/components/Stack/EStack.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/Stamp/EStamp.js.map +1 -1
  202. package/dist/components/Stamp/EStamp.vue.d.ts +18 -12
  203. package/dist/components/Stamp/EStamp.vue_vue_type_script_setup_true_lang.js +27 -40
  204. package/dist/components/Stamp/EStamp.vue_vue_type_script_setup_true_lang.js.map +1 -1
  205. package/dist/components/Stepper/EStepper.js.map +1 -1
  206. package/dist/components/Stepper/EStepper.vue.d.ts +2 -2
  207. package/dist/components/Stepper/EStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  208. package/dist/components/Surface/ESurface.js.map +1 -1
  209. package/dist/components/Surface/ESurface.vue.d.ts +5 -5
  210. package/dist/components/Surface/ESurface.vue_vue_type_script_setup_true_lang.js +5 -5
  211. package/dist/components/Surface/ESurface.vue_vue_type_script_setup_true_lang.js.map +1 -1
  212. package/dist/components/Switch/ESwitch.js.map +1 -1
  213. package/dist/components/Switch/ESwitch.vue.d.ts +3 -1
  214. package/dist/components/Switch/ESwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/components/Tabs/ETabs.js.map +1 -1
  216. package/dist/components/Tabs/ETabs.vue.d.ts +10 -32
  217. package/dist/components/Tabs/ETabs.vue_vue_type_script_setup_true_lang.js +21 -50
  218. package/dist/components/Tabs/ETabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/components/Tabs/index.d.ts +1 -1
  220. package/dist/components/Text/EText.js.map +1 -1
  221. package/dist/components/Text/EText.vue.d.ts +4 -3
  222. package/dist/components/Text/EText.vue_vue_type_script_setup_true_lang.js +7 -2
  223. package/dist/components/Text/EText.vue_vue_type_script_setup_true_lang.js.map +1 -1
  224. package/dist/components/TextField/ETextField.js.map +1 -1
  225. package/dist/components/TextField/ETextField.vue.d.ts +8 -6
  226. package/dist/components/TextField/ETextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  227. package/dist/components/Textarea/ETextarea.js.map +1 -1
  228. package/dist/components/Textarea/ETextarea.vue.d.ts +4 -2
  229. package/dist/components/Textarea/ETextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/Toast/EToast.js.map +1 -1
  231. package/dist/components/Toast/EToast.vue_vue_type_script_setup_true_lang.js +5 -5
  232. package/dist/components/Toast/EToast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/components/ToastProvider/EToastProvider.js.map +1 -1
  234. package/dist/components/ToastProvider/EToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/components/Tooltip/ETooltip.js.map +1 -1
  236. package/dist/components/Tooltip/ETooltip.vue.d.ts +1 -0
  237. package/dist/components/Tooltip/ETooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  238. package/dist/components/Upload/EUpload.js.map +1 -1
  239. package/dist/components/Upload/EUpload.vue.d.ts +5 -3
  240. package/dist/components/Upload/EUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/fonts.css +1 -1
  242. package/dist/index.d.ts +2 -25
  243. package/dist/index.js +71 -94
  244. package/dist/messages.d.ts +0 -13
  245. package/dist/messages.js +0 -13
  246. package/dist/messages.js.map +1 -1
  247. package/dist/style.css +2668 -3128
  248. package/package.json +4 -2
  249. package/dist/components/Accordion/EAccordion.js +0 -8
  250. package/dist/components/Accordion/EAccordion.js.map +0 -1
  251. package/dist/components/Accordion/EAccordion.vue.d.ts +0 -32
  252. package/dist/components/Accordion/EAccordion.vue_vue_type_script_setup_true_lang.js +0 -35
  253. package/dist/components/Accordion/EAccordion.vue_vue_type_script_setup_true_lang.js.map +0 -1
  254. package/dist/components/Accordion/index.d.ts +0 -2
  255. package/dist/components/AddressField/EAddressField.js +0 -8
  256. package/dist/components/AddressField/EAddressField.js.map +0 -1
  257. package/dist/components/AddressField/EAddressField.vue.d.ts +0 -39
  258. package/dist/components/AddressField/EAddressField.vue_vue_type_script_setup_true_lang.js +0 -119
  259. package/dist/components/AddressField/EAddressField.vue_vue_type_script_setup_true_lang.js.map +0 -1
  260. package/dist/components/AddressField/index.d.ts +0 -2
  261. package/dist/components/AddressField/usStates.d.ts +0 -5
  262. package/dist/components/AddressField/usStates.js +0 -211
  263. package/dist/components/AddressField/usStates.js.map +0 -1
  264. package/dist/components/Amount/EAmount.js +0 -8
  265. package/dist/components/Amount/EAmount.js.map +0 -1
  266. package/dist/components/Amount/EAmount.vue.d.ts +0 -21
  267. package/dist/components/Amount/EAmount.vue_vue_type_script_setup_true_lang.js +0 -38
  268. package/dist/components/Amount/EAmount.vue_vue_type_script_setup_true_lang.js.map +0 -1
  269. package/dist/components/Amount/index.d.ts +0 -2
  270. package/dist/components/Autocomplete/EAutocomplete.js +0 -7
  271. package/dist/components/Autocomplete/EAutocomplete.js.map +0 -1
  272. package/dist/components/Autocomplete/EAutocomplete.vue.d.ts +0 -44
  273. package/dist/components/Autocomplete/EAutocomplete.vue_vue_type_script_setup_true_lang.js +0 -58
  274. package/dist/components/Autocomplete/EAutocomplete.vue_vue_type_script_setup_true_lang.js.map +0 -1
  275. package/dist/components/Autocomplete/index.d.ts +0 -1
  276. package/dist/components/BackLink/EBackLink.js +0 -8
  277. package/dist/components/BackLink/EBackLink.js.map +0 -1
  278. package/dist/components/BackLink/EBackLink.vue.d.ts +0 -23
  279. package/dist/components/BackLink/EBackLink.vue_vue_type_script_setup_true_lang.js +0 -27
  280. package/dist/components/BackLink/EBackLink.vue_vue_type_script_setup_true_lang.js.map +0 -1
  281. package/dist/components/BackLink/index.d.ts +0 -1
  282. package/dist/components/BookingCard/EBookingCard.js +0 -8
  283. package/dist/components/BookingCard/EBookingCard.js.map +0 -1
  284. package/dist/components/BookingCard/EBookingCard.vue.d.ts +0 -46
  285. package/dist/components/BookingCard/EBookingCard.vue_vue_type_script_setup_true_lang.js +0 -86
  286. package/dist/components/BookingCard/EBookingCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
  287. package/dist/components/BookingCard/index.d.ts +0 -2
  288. package/dist/components/ButtonGroup/EButtonGroup.js +0 -8
  289. package/dist/components/ButtonGroup/EButtonGroup.js.map +0 -1
  290. package/dist/components/ButtonGroup/EButtonGroup.vue_vue_type_script_setup_true_lang.js +0 -18
  291. package/dist/components/ButtonGroup/EButtonGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
  292. package/dist/components/ButtonGroup/index.d.ts +0 -1
  293. package/dist/components/CardField/ECardField.js +0 -8
  294. package/dist/components/CardField/ECardField.js.map +0 -1
  295. package/dist/components/CardField/ECardField.vue.d.ts +0 -31
  296. package/dist/components/CardField/ECardField.vue_vue_type_script_setup_true_lang.js +0 -65
  297. package/dist/components/CardField/ECardField.vue_vue_type_script_setup_true_lang.js.map +0 -1
  298. package/dist/components/CardField/index.d.ts +0 -1
  299. package/dist/components/Chip/EChip.js +0 -8
  300. package/dist/components/Chip/EChip.js.map +0 -1
  301. package/dist/components/Chip/EChip.vue.d.ts +0 -22
  302. package/dist/components/Chip/EChip.vue_vue_type_script_setup_true_lang.js +0 -18
  303. package/dist/components/Chip/EChip.vue_vue_type_script_setup_true_lang.js.map +0 -1
  304. package/dist/components/Chip/index.d.ts +0 -2
  305. package/dist/components/Combobox/EHighlight.js.map +0 -1
  306. package/dist/components/DetailRow/EDetailRow.js +0 -8
  307. package/dist/components/DetailRow/EDetailRow.js.map +0 -1
  308. package/dist/components/DetailRow/EDetailRow.vue.d.ts +0 -30
  309. package/dist/components/DetailRow/EDetailRow.vue_vue_type_script_setup_true_lang.js +0 -53
  310. package/dist/components/DetailRow/EDetailRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
  311. package/dist/components/DetailRow/index.d.ts +0 -1
  312. package/dist/components/ErrorSummary/EErrorSummary.js +0 -8
  313. package/dist/components/ErrorSummary/EErrorSummary.js.map +0 -1
  314. package/dist/components/ErrorSummary/EErrorSummary.vue.d.ts +0 -30
  315. package/dist/components/ErrorSummary/EErrorSummary.vue_vue_type_script_setup_true_lang.js +0 -52
  316. package/dist/components/ErrorSummary/EErrorSummary.vue_vue_type_script_setup_true_lang.js.map +0 -1
  317. package/dist/components/ErrorSummary/index.d.ts +0 -2
  318. package/dist/components/FormSection/EFormSection.js +0 -8
  319. package/dist/components/FormSection/EFormSection.js.map +0 -1
  320. package/dist/components/FormSection/EFormSection.vue.d.ts +0 -28
  321. package/dist/components/FormSection/EFormSection.vue_vue_type_script_setup_true_lang.js +0 -38
  322. package/dist/components/FormSection/EFormSection.vue_vue_type_script_setup_true_lang.js.map +0 -1
  323. package/dist/components/FormSection/index.d.ts +0 -1
  324. package/dist/components/ItemList/EItemList.js +0 -8
  325. package/dist/components/ItemList/EItemList.js.map +0 -1
  326. package/dist/components/ItemList/EItemList.vue.d.ts +0 -13
  327. package/dist/components/ItemList/EItemList.vue_vue_type_script_setup_true_lang.js +0 -17
  328. package/dist/components/ItemList/EItemList.vue_vue_type_script_setup_true_lang.js.map +0 -1
  329. package/dist/components/ItemList/context.d.ts +0 -3
  330. package/dist/components/ItemList/context.js +0 -6
  331. package/dist/components/ItemList/context.js.map +0 -1
  332. package/dist/components/ItemList/index.d.ts +0 -1
  333. package/dist/components/ItemRow/EItemRow.js +0 -8
  334. package/dist/components/ItemRow/EItemRow.js.map +0 -1
  335. package/dist/components/ItemRow/EItemRow.vue.d.ts +0 -29
  336. package/dist/components/ItemRow/EItemRow.vue_vue_type_script_setup_true_lang.js +0 -54
  337. package/dist/components/ItemRow/EItemRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
  338. package/dist/components/ItemRow/index.d.ts +0 -1
  339. package/dist/components/LinkCard/ELinkCard.js +0 -8
  340. package/dist/components/LinkCard/ELinkCard.js.map +0 -1
  341. package/dist/components/LinkCard/ELinkCard.vue.d.ts +0 -39
  342. package/dist/components/LinkCard/ELinkCard.vue_vue_type_script_setup_true_lang.js +0 -61
  343. package/dist/components/LinkCard/ELinkCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
  344. package/dist/components/LinkCard/index.d.ts +0 -1
  345. package/dist/components/LoadingBar/ELoadingBar.js +0 -8
  346. package/dist/components/LoadingBar/ELoadingBar.js.map +0 -1
  347. package/dist/components/LoadingBar/ELoadingBar.vue.d.ts +0 -7
  348. package/dist/components/LoadingBar/ELoadingBar.vue_vue_type_script_setup_true_lang.js +0 -21
  349. package/dist/components/LoadingBar/ELoadingBar.vue_vue_type_script_setup_true_lang.js.map +0 -1
  350. package/dist/components/LoadingBar/index.d.ts +0 -1
  351. package/dist/components/MetaList/EMetaList.js +0 -8
  352. package/dist/components/MetaList/EMetaList.js.map +0 -1
  353. package/dist/components/MetaList/EMetaList.vue.d.ts +0 -15
  354. package/dist/components/MetaList/EMetaList.vue_vue_type_script_setup_true_lang.js +0 -19
  355. package/dist/components/MetaList/EMetaList.vue_vue_type_script_setup_true_lang.js.map +0 -1
  356. package/dist/components/MetaList/index.d.ts +0 -2
  357. package/dist/components/MultiSelect/EMultiSelect.js +0 -7
  358. package/dist/components/MultiSelect/EMultiSelect.js.map +0 -1
  359. package/dist/components/MultiSelect/EMultiSelect.vue.d.ts +0 -44
  360. package/dist/components/MultiSelect/EMultiSelect.vue_vue_type_script_setup_true_lang.js +0 -58
  361. package/dist/components/MultiSelect/EMultiSelect.vue_vue_type_script_setup_true_lang.js.map +0 -1
  362. package/dist/components/MultiSelect/index.d.ts +0 -1
  363. package/dist/components/Panel/EPanel.js +0 -8
  364. package/dist/components/Panel/EPanel.js.map +0 -1
  365. package/dist/components/Panel/EPanel.vue.d.ts +0 -25
  366. package/dist/components/Panel/EPanel.vue_vue_type_script_setup_true_lang.js +0 -38
  367. package/dist/components/Panel/EPanel.vue_vue_type_script_setup_true_lang.js.map +0 -1
  368. package/dist/components/Panel/index.d.ts +0 -1
  369. package/dist/components/Popover/EPopover.js +0 -8
  370. package/dist/components/Popover/EPopover.js.map +0 -1
  371. package/dist/components/Popover/EPopover.vue_vue_type_script_setup_true_lang.js.map +0 -1
  372. package/dist/components/Popover/index.d.ts +0 -1
  373. package/dist/components/SlotPicker/ESlotPicker.js +0 -8
  374. package/dist/components/SlotPicker/ESlotPicker.js.map +0 -1
  375. package/dist/components/SlotPicker/ESlotPicker.vue.d.ts +0 -55
  376. package/dist/components/SlotPicker/ESlotPicker.vue_vue_type_script_setup_true_lang.js +0 -82
  377. package/dist/components/SlotPicker/ESlotPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
  378. package/dist/components/SlotPicker/index.d.ts +0 -2
  379. package/dist/components/StatementCard/EStatementCard.js +0 -8
  380. package/dist/components/StatementCard/EStatementCard.js.map +0 -1
  381. package/dist/components/StatementCard/EStatementCard.vue.d.ts +0 -20
  382. package/dist/components/StatementCard/EStatementCard.vue_vue_type_script_setup_true_lang.js +0 -96
  383. package/dist/components/StatementCard/EStatementCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
  384. package/dist/components/StatementCard/index.d.ts +0 -2
  385. package/dist/components/StatementCard/types.d.ts +0 -37
  386. package/dist/components/StatementRow/EStatementRow.js +0 -8
  387. package/dist/components/StatementRow/EStatementRow.js.map +0 -1
  388. package/dist/components/StatementRow/EStatementRow.vue.d.ts +0 -14
  389. package/dist/components/StatementRow/EStatementRow.vue_vue_type_script_setup_true_lang.js +0 -96
  390. package/dist/components/StatementRow/EStatementRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
  391. package/dist/components/StatementRow/index.d.ts +0 -1
  392. package/dist/components/Tabs/LinkNav.js.map +0 -1
  393. package/dist/components/Tabs/LinkNav.vue_vue_type_script_setup_true_lang.js.map +0 -1
  394. package/dist/components/Timeline/ETimeline.js +0 -8
  395. package/dist/components/Timeline/ETimeline.js.map +0 -1
  396. package/dist/components/Timeline/ETimeline.vue.d.ts +0 -15
  397. package/dist/components/Timeline/ETimeline.vue_vue_type_script_setup_true_lang.js +0 -43
  398. package/dist/components/Timeline/ETimeline.vue_vue_type_script_setup_true_lang.js.map +0 -1
  399. package/dist/components/Timeline/index.d.ts +0 -2
  400. package/dist/components/Toggle/EToggle.js +0 -8
  401. package/dist/components/Toggle/EToggle.js.map +0 -1
  402. package/dist/components/Toggle/EToggle.vue.d.ts +0 -27
  403. package/dist/components/Toggle/EToggle.vue_vue_type_script_setup_true_lang.js +0 -40
  404. package/dist/components/Toggle/EToggle.vue_vue_type_script_setup_true_lang.js.map +0 -1
  405. package/dist/components/Toggle/index.d.ts +0 -1
  406. /package/dist/components/Combobox/{EHighlight.d.ts → matchHighlight.d.ts} +0 -0
  407. /package/dist/components/{Tabs → NavList}/LinkNav.vue.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ERadioGroup.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EFieldset","_unref","_withCtx","_createElementBlock","_Fragment","_renderList","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode","EFieldset_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ERadioGroup_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","model","useModel","name","useUid","slots","useSlots","normalised","o","hasContent","nodes","n","Comment","Fragment","rows","chosen","option","Nodes","p","openBlock","createBlock","unref","withCtx","createElementBlock","renderList","row","createElementVNode","normalizeClass","createTextVNode","toDisplayString","createCommentVNode","createVNode"],"sources":["../../../src/components/RadioGroup/ERadioGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface RadioOption {\n value: string;\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Comment, Fragment, useSlots, type FunctionalComponent, type VNode } from \"vue\";\nimport EFieldset from \"../Fieldset/EFieldset.vue\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\nconst props = defineProps<{\n /** The question, as the group's legend. */\n label: string;\n /** Keep the legend for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Five or fewer. A string is both value and label. */\n options: (string | RadioOption)[];\n /** Help that is announced with the group. */\n hint?: string;\n /** What to fix. Replaces the hint and is announced with the group. */\n error?: string;\n required?: boolean;\n /** A word beside the legend. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables every option. */\n disabled?: boolean;\n /** The name the radios share, submitted with a form. Generated when left out. */\n name?: string;\n}>();\n\ndefineSlots<{\n /** A control shown under its option while that option is chosen, such as an amount field under \"Another amount\". Render nothing for an option that has none. */\n reveal(props: { option: RadioOption }): unknown;\n}>();\n\nconst model = defineModel<string>();\n\nconst name = useUid(() => props.name);\nconst slots = useSlots();\n\nconst normalised = (): RadioOption[] => props.options.map((o) => (typeof o === \"string\" ? { value: o, label: o } : o));\n\nfunction hasContent(nodes: VNode[]): boolean {\n return nodes.some((n) =>\n n.type === Comment ? false : n.type === Fragment ? hasContent((n.children as VNode[] | null) ?? []) : true,\n );\n}\n\nfunction rows() {\n return normalised().map((option) => {\n const chosen = model.value === option.value;\n const nodes = chosen ? slots.reveal?.({ option }) : undefined;\n return { option, chosen, reveal: nodes && hasContent(nodes) ? nodes : null };\n });\n}\n\nconst Nodes: FunctionalComponent<{ nodes: VNode[] }> = (p) => p.nodes;\nNodes.props = [\"nodes\"];\n</script>\n\n<template>\n <EFieldset\n :id=\"`${name}-fs`\"\n class=\"e-radiogroup\"\n legend-class=\"e-radiogroup-legend\"\n bare\n :legend=\"label\"\n :hide-legend=\"hideLabel\"\n :hint=\"hint\"\n :error=\"error\"\n :required=\"required\"\n :optional=\"optional\"\n :disabled=\"disabled\"\n >\n <template v-for=\"row in rows()\" :key=\"row.option.value\">\n <label class=\"e-choice\" :class=\"{ 'e-choice--disabled': row.option.disabled, 'e-choice--open': row.reveal }\">\n <input\n type=\"radio\"\n class=\"e-radio\"\n :name=\"name\"\n :value=\"row.option.value\"\n :required=\"required\"\n :checked=\"row.chosen\"\n :disabled=\"row.option.disabled\"\n @change=\"model = row.option.value\"\n />\n <span class=\"e-choice-text\">\n {{ row.option.label }}\n <span v-if=\"row.option.description\" class=\"e-choice-desc\">{{ row.option.description }}</span>\n </span>\n </label>\n <div v-if=\"row.reveal\" class=\"e-choice-reveal\"><Nodes :nodes=\"row.reveal\" /></div>\n </template>\n </EFieldset>\n</template>\n\n<style>\n@layer e.controls {\n .e-radiogroup {\n display: grid;\n gap: 0;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n }\n\n .e-radiogroup-legend {\n padding: 0;\n }\n\n .e-radiogroup > .e-field-hint,\n .e-radiogroup > .e-field-error {\n margin-top: -6px;\n }\n\n .e-choice--open {\n min-height: 0;\n padding-bottom: var(--e-space-1);\n }\n\n .e-choice-reveal {\n padding: var(--e-space-1) 0 var(--e-space-2);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBA,IAAMuB,IAAQC,GAyBRC,IAAQzB,EAAmBwB,GAAA,YAAC,GAE5BG,IAAOC,QAAaL,EAAM,IAAI,GAC9BM,IAAQC,EAAS,GAEjBC,UAAkCR,EAAM,QAAQ,KAAK,MAAO,OAAOS,KAAM,WAAW;GAAE,OAAOA;GAAG,OAAOA;EAAE,IAAIA,CAAE;EAErH,SAASC,EAAW,GAAyB;GAC3C,OAAOC,EAAM,MAAM,MACjBC,EAAE,SAASC,IAAU,KAAQD,EAAE,SAASE,KAAWJ,EAAYE,EAAE,YAA+B,CAAC,CAAC,CACpG;EACF;EAEA,SAASG,IAAO;GACd,OAAOP,EAAW,CAAC,CAAC,KAAK,MAAW;IAClC,IAAMQ,IAASd,EAAM,UAAUe,EAAO,OAChCN,IAAQK,IAASV,EAAM,SAAS,EAAE,UAAO,CAAC,IAAI,KAAA;IACpD,OAAO;KAAE;KAAQ;KAAQ,QAAQK,KAASD,EAAWC,CAAK,IAAIA,IAAQ;IAAK;GAC7E,CAAC;EACH;EAEA,IAAMO,KAAkD,MAAMC,EAAE;E,OAChE,EAAM,QAAQ,CAAC,OAAO,I,UAIpBzC,EAAA,GAAAC,EAgCYC,GAAA;GA/BT,IAAE,GAAKC,EAAAuB,CAAA,EAAI;GACZ,OAAM;GACN,gBAAa;GACb,MAAA;GACC,QAAQH,EAAA;GACR,eAAaA,EAAA;GACb,MAAMA,EAAA;GACN,OAAOA,EAAA;GACP,UAAUA,EAAA;GACV,UAAUA,EAAA;GACV,UAAUA,EAAA;;GAED,SAAAnB,QAAqB,EAA/BJ,EAAA,EAAA,GAAAK,EAkBWC,GAAA,MAAAC,EAlBa8B,EAAI,IAAX,O,YAAqB,KAAAW,EAAI,OAAO,M,IAC/CxC,EAeQ,SAAA,EAfD,OAAKC,EAAA,CAAC,YAAU;IAAA,sBAAiCuC,EAAI,OAAO;IAAQ,kBAAoBA,EAAI;GAAM,CAAA,CAAA,E,IACvGxC,EASE,SAAA;IARA,MAAK;IACL,OAAM;IACL,MAAML,EAAAuB,CAAA;IACN,OAAOsB,EAAI,OAAO;IAClB,UAAUzB,EAAA;IACV,SAASyB,EAAI;IACb,UAAUA,EAAI,OAAO;IACrB,WAAM,MAAE,EAAA,QAAQA,EAAI,OAAO;G,iBAE9BxC,EAGO,QAHPQ,GAGO,CAFFN,EAAAC,EAAAqC,EAAI,OAAO,KAAK,IAAG,KACtB,CAAA,GAAYA,EAAI,OAAO,eAAvBhD,EAAA,GAAAK,EAA6F,QAA7FY,GAA6FN,EAAhCqC,EAAI,OAAO,WAAW,GAAA,CAAA,K,kBAG5EA,EAAI,UAAfhD,EAAA,GAAAK,EAAkF,OAAlFa,GAAkF,CAAnCL,EAA6B2B,GAAA,EAArB,OAAOQ,EAAI,O"}
1
+ {"version":3,"file":"ERadioGroup.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EFieldset","_unref","_withCtx","_createElementBlock","_Fragment","_renderList","_createElementVNode","_normalizeClass","_createTextVNode","_toDisplayString","_createCommentVNode","_createVNode","EFieldset_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ERadioGroup_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","model","useModel","name","useUid","slots","useSlots","normalised","o","hasContent","nodes","n","Comment","Fragment","rows","chosen","option","Nodes","p","openBlock","createBlock","unref","withCtx","createElementBlock","renderList","row","createElementVNode","normalizeClass","createTextVNode","toDisplayString","createCommentVNode","createVNode"],"sources":["../../../src/components/RadioGroup/ERadioGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface RadioOption {\n value: string;\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Comment, Fragment, useSlots, type FunctionalComponent, type VNode } from \"vue\";\nimport EFieldset from \"../Fieldset/EFieldset.vue\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\nconst props = defineProps<{\n /** The question, as the group's legend. */\n label: string;\n /** Keep the legend for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Five or fewer. A string is both value and label. `RadioOption`: `{ value, label, description?, disabled? }`. */\n options: (string | RadioOption)[];\n /** Help that is announced with the group. */\n hint?: string;\n /** What to fix. Replaces the hint and is announced with the group. */\n error?: string;\n /** A word beside the legend, and `required` on the radios. */\n required?: boolean;\n /** A word beside the legend. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables every option. */\n disabled?: boolean;\n /** Shared by the radios, submitted with a form. @default generated */\n name?: string;\n}>();\n\ndefineSlots<{\n /** A control shown under its option while that option is chosen, such as an amount field under \"Another amount\". Render nothing for an option that has none. */\n reveal(props: { option: RadioOption }): unknown;\n}>();\n\n/** The chosen value. */\nconst model = defineModel<string>();\n\nconst name = useUid(() => props.name);\nconst slots = useSlots();\n\nconst normalised = (): RadioOption[] => props.options.map((o) => (typeof o === \"string\" ? { value: o, label: o } : o));\n\nfunction hasContent(nodes: VNode[]): boolean {\n return nodes.some((n) =>\n n.type === Comment ? false : n.type === Fragment ? hasContent((n.children as VNode[] | null) ?? []) : true,\n );\n}\n\nfunction rows() {\n return normalised().map((option) => {\n const chosen = model.value === option.value;\n const nodes = chosen ? slots.reveal?.({ option }) : undefined;\n return { option, chosen, reveal: nodes && hasContent(nodes) ? nodes : null };\n });\n}\n\nconst Nodes: FunctionalComponent<{ nodes: VNode[] }> = (p) => p.nodes;\nNodes.props = [\"nodes\"];\n</script>\n\n<template>\n <EFieldset\n :id=\"`${name}-fs`\"\n class=\"e-radiogroup\"\n legend-class=\"e-radiogroup-legend\"\n bare\n :legend=\"label\"\n :hide-legend=\"hideLabel\"\n :hint=\"hint\"\n :error=\"error\"\n :required=\"required\"\n :optional=\"optional\"\n :disabled=\"disabled\"\n >\n <template v-for=\"row in rows()\" :key=\"row.option.value\">\n <label class=\"e-choice\" :class=\"{ 'e-choice--disabled': row.option.disabled, 'e-choice--open': row.reveal }\">\n <input\n type=\"radio\"\n class=\"e-radio\"\n :name=\"name\"\n :value=\"row.option.value\"\n :required=\"required\"\n :checked=\"row.chosen\"\n :disabled=\"row.option.disabled\"\n @change=\"model = row.option.value\"\n />\n <span class=\"e-choice-text\">\n {{ row.option.label }}\n <span v-if=\"row.option.description\" class=\"e-choice-desc\">{{ row.option.description }}</span>\n </span>\n </label>\n <div v-if=\"row.reveal\" class=\"e-choice-reveal\"><Nodes :nodes=\"row.reveal\" /></div>\n </template>\n </EFieldset>\n</template>\n\n<style>\n@layer e.controls {\n .e-radiogroup {\n display: grid;\n gap: 0;\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n }\n\n .e-radiogroup-legend {\n padding: 0;\n }\n\n .e-radiogroup > .e-field-hint,\n .e-radiogroup > .e-field-error {\n margin-top: calc(var(--e-space-1) - var(--e-space-2) - var(--e-focus-gap));\n }\n\n .e-choice--open {\n min-height: 0;\n padding-bottom: var(--e-space-1);\n }\n\n .e-choice-reveal {\n padding: var(--e-space-1) 0 var(--e-space-2);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBA,IAAMuB,IAAQC,GA2BRC,IAAQzB,EAAmBwB,GAAA,YAAC,GAE5BG,IAAOC,QAAaL,EAAM,IAAI,GAC9BM,IAAQC,EAAS,GAEjBC,UAAkCR,EAAM,QAAQ,KAAK,MAAO,OAAOS,KAAM,WAAW;GAAE,OAAOA;GAAG,OAAOA;EAAE,IAAIA,CAAE;EAErH,SAASC,EAAW,GAAyB;GAC3C,OAAOC,EAAM,MAAM,MACjBC,EAAE,SAASC,IAAU,KAAQD,EAAE,SAASE,KAAWJ,EAAYE,EAAE,YAA+B,CAAC,CAAC,CACpG;EACF;EAEA,SAASG,IAAO;GACd,OAAOP,EAAW,CAAC,CAAC,KAAK,MAAW;IAClC,IAAMQ,IAASd,EAAM,UAAUe,EAAO,OAChCN,IAAQK,IAASV,EAAM,SAAS,EAAE,UAAO,CAAC,IAAI,KAAA;IACpD,OAAO;KAAE;KAAQ;KAAQ,QAAQK,KAASD,EAAWC,CAAK,IAAIA,IAAQ;IAAK;GAC7E,CAAC;EACH;EAEA,IAAMO,KAAkD,MAAMC,EAAE;E,OAChE,EAAM,QAAQ,CAAC,OAAO,I,UAIpBzC,EAAA,GAAAC,EAgCYC,GAAA;GA/BT,IAAE,GAAKC,EAAAuB,CAAA,EAAI;GACZ,OAAM;GACN,gBAAa;GACb,MAAA;GACC,QAAQH,EAAA;GACR,eAAaA,EAAA;GACb,MAAMA,EAAA;GACN,OAAOA,EAAA;GACP,UAAUA,EAAA;GACV,UAAUA,EAAA;GACV,UAAUA,EAAA;;GAED,SAAAnB,QAAqB,EAA/BJ,EAAA,EAAA,GAAAK,EAkBWC,GAAA,MAAAC,EAlBa8B,EAAI,IAAX,O,YAAqB,KAAAW,EAAI,OAAO,M,IAC/CxC,EAeQ,SAAA,EAfD,OAAKC,EAAA,CAAC,YAAU;IAAA,sBAAiCuC,EAAI,OAAO;IAAQ,kBAAoBA,EAAI;GAAM,CAAA,CAAA,E,IACvGxC,EASE,SAAA;IARA,MAAK;IACL,OAAM;IACL,MAAML,EAAAuB,CAAA;IACN,OAAOsB,EAAI,OAAO;IAClB,UAAUzB,EAAA;IACV,SAASyB,EAAI;IACb,UAAUA,EAAI,OAAO;IACrB,WAAM,MAAE,EAAA,QAAQA,EAAI,OAAO;G,iBAE9BxC,EAGO,QAHPQ,GAGO,CAFFN,EAAAC,EAAAqC,EAAI,OAAO,KAAK,IAAG,KACtB,CAAA,GAAYA,EAAI,OAAO,eAAvBhD,EAAA,GAAAK,EAA6F,QAA7FY,GAA6FN,EAAhCqC,EAAI,OAAO,WAAW,GAAA,CAAA,K,kBAG5EA,EAAI,UAAfhD,EAAA,GAAAK,EAAkF,OAAlFa,GAAkF,CAAnCL,EAA6B2B,GAAA,EAArB,OAAOQ,EAAI,O"}
@@ -1 +1 @@
1
- {"version":3,"file":"ERangePicker.js","names":["_sfc_main","ERangePicker_vue_vue_type_script_setup_true_lang_default","ERangePicker_default"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** A word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form. */\n endName?: string;\n /** Buttons under the calendar that choose a span at once. Default: Last 7 days, Last 30 days, This month. */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst start = defineModel<Date | null>(\"start\", { default: null });\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ERangePicker.js","names":["_sfc_main","ERangePicker_vue_vue_type_script_setup_true_lang_default","ERangePicker_default"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. It also names the group. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** The `required` attribute and a word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables both boxes and the button. */\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */\n endName?: string;\n /** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** The first date of the span. */\nconst start = defineModel<Date | null>(\"start\", { default: null });\n/** The last date of the span. */\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\n/** Whether the calendar is open. A disabled field never opens. */\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
@@ -8,7 +8,7 @@ export interface RangePreset {
8
8
  };
9
9
  }
10
10
  type __VLS_Props = {
11
- /** The visible label, a mono kicker above the field. */
11
+ /** The visible label, a mono kicker above the field. It also names the group. */
12
12
  label: string;
13
13
  /** Keep the label for screen readers and remove it from the page. */
14
14
  hideLabel?: boolean;
@@ -16,27 +16,31 @@ type __VLS_Props = {
16
16
  hint?: string;
17
17
  /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */
18
18
  error?: string;
19
- /** A word beside the label. */
19
+ /** The `required` attribute and a word beside the label. */
20
20
  required?: boolean;
21
21
  /** A word beside the label. Flag whichever is rarer. */
22
22
  optional?: boolean;
23
+ /** Disables both boxes and the button. */
23
24
  disabled?: boolean;
24
25
  /** The earliest date that can be chosen or typed. */
25
26
  min?: Date;
26
27
  /** The latest date that can be chosen or typed. */
27
28
  max?: Date;
28
- /** Submits the first date as `YYYY-MM-DD` with a form. */
29
+ /** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */
29
30
  startName?: string;
30
- /** Submits the last date as `YYYY-MM-DD` with a form. */
31
+ /** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */
31
32
  endName?: string;
32
- /** Buttons under the calendar that choose a span at once. Default: Last 7 days, Last 30 days, This month. */
33
+ /** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */
33
34
  presets?: RangePreset[];
34
- /** The id of the start box; the label points at it. Generated when left out. */
35
+ /** The id of the start box; the label points at it. @default generated */
35
36
  id?: string;
36
37
  };
37
38
  type __VLS_ModelProps = {
39
+ /** The first date of the span. */
38
40
  "start"?: Date | null;
41
+ /** The last date of the span. */
39
42
  "end"?: Date | null;
43
+ /** Whether the calendar is open. A disabled field never opens. */
40
44
  "open"?: boolean;
41
45
  };
42
46
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
@@ -44,13 +48,13 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {
44
48
  input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
45
49
  focus: () => void | undefined;
46
50
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
47
- "update:open": (value: boolean) => any;
48
51
  "update:start": (value: Date | null) => any;
49
52
  "update:end": (value: Date | null) => any;
53
+ "update:open": (value: boolean) => any;
50
54
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
51
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
52
55
  "onUpdate:start"?: ((value: Date | null) => any) | undefined;
53
56
  "onUpdate:end"?: ((value: Date | null) => any) | undefined;
57
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
54
58
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
55
59
  declare const _default: typeof __VLS_export;
56
60
  export default _default;
@@ -2,17 +2,17 @@
2
2
  import { useConfig as e, useMessages as t, usePortalTarget as n } from "../../config.js";
3
3
  import { useFieldAttrs as r } from "../../composables/useFieldAttrs.js";
4
4
  import { useLocale as ee } from "../../composables/useLocale.js";
5
- import te from "../Icon/EIcon.js";
6
- import i from "../Field/EField.js";
5
+ import i from "../Icon/EIcon.js";
6
+ import a from "../Button/EButton.js";
7
+ import { addDays as o, compareDays as s, isoDate as c, startOfDay as te } from "../Calendar/dates.js";
8
+ import ne from "../Calendar/ECalendar.js";
9
+ import re from "../Field/EField.js";
7
10
  /* empty css */
8
- import { useQuietFocus as a } from "../Select/quietFocus.js";
9
11
  /* empty css */
10
- import o from "../Button/EButton.js";
11
- import { addDays as s, compareDays as c, isoDate as l, startOfDay as ne } from "../Calendar/dates.js";
12
- import re from "../Calendar/ECalendar.js";
12
+ import { useQuietFocus as ie } from "../Select/quietFocus.js";
13
13
  /* empty css */
14
- import { Fragment as ie, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as ae, createVNode as h, defineComponent as g, mergeModels as _, mergeProps as v, nextTick as y, openBlock as b, ref as x, renderList as S, toDisplayString as C, unref as w, useModel as T, vModelText as E, watch as D, withCtx as O, withDirectives as k } from "vue";
15
- import { PopoverAnchor as oe, PopoverContent as se, PopoverPortal as ce, PopoverRoot as le, PopoverTrigger as A } from "reka-ui";
14
+ import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, mergeModels as v, mergeProps as y, nextTick as ae, openBlock as b, ref as x, renderList as oe, toDisplayString as S, unref as C, useModel as w, vModelText as T, watch as E, withCtx as D, withDirectives as O } from "vue";
15
+ import { PopoverAnchor as k, PopoverContent as A, PopoverPortal as se, PopoverRoot as ce, PopoverTrigger as le } from "reka-ui";
16
16
  //#region src/components/RangePicker/ERangePicker.vue?vue&type=script&setup=true&lang.ts
17
17
  var ue = [
18
18
  "aria-labelledby",
@@ -36,10 +36,10 @@ var ue = [
36
36
  "required",
37
37
  "aria-invalid",
38
38
  "aria-describedby"
39
- ], me = ["name", "value"], j = ["name", "value"], M = ["aria-label", "disabled"], N = { class: "e-cal-presets" }, P = /*@__PURE__*/ g({
39
+ ], me = ["name", "value"], j = ["name", "value"], M = ["aria-label", "disabled"], N = { class: "e-cal-presets" }, P = /*@__PURE__*/ _({
40
40
  inheritAttrs: !1,
41
41
  __name: "ERangePicker",
42
- props: /*@__PURE__*/ _({
42
+ props: /*@__PURE__*/ v({
43
43
  label: {},
44
44
  hideLabel: { type: Boolean },
45
45
  hint: {},
@@ -69,21 +69,21 @@ var ue = [
69
69
  "update:end",
70
70
  "update:open"
71
71
  ],
72
- setup(g, { expose: _ }) {
73
- let P = g, F = T(g, "start"), I = T(g, "end"), L = t(), R = e(), z = ee(), he = n(), B = r(), V = T(g, "open"), H = u(() => V.value && !P.disabled), U = a(H, (e) => !!e.closest(".e-calpanel, .e-combo")), ge = {
72
+ setup(_, { expose: v }) {
73
+ let P = _, F = w(_, "start"), I = w(_, "end"), L = t(), R = e(), z = ee(), he = n(), B = r(), V = w(_, "open"), H = u(() => V.value && !P.disabled), U = ie(H, (e) => !!e.closest(".e-calpanel, .e-combo")), ge = {
74
74
  onClick: U.intent,
75
75
  onKeydown: U.intent
76
76
  }, W = x(z.formatDate(F.value)), G = x(z.formatDate(I.value)), K = x(""), q = x({
77
77
  start: F.value,
78
78
  end: I.value
79
79
  }), J = x(null), Y = x(null);
80
- D([
80
+ E([
81
81
  () => F.value?.getTime(),
82
82
  () => I.value?.getTime(),
83
83
  () => R.locale
84
84
  ], () => {
85
85
  W.value = z.formatDate(F.value), G.value = z.formatDate(I.value);
86
- }), D(V, (e) => {
86
+ }), E(V, (e) => {
87
87
  e && (q.value = {
88
88
  start: F.value,
89
89
  end: I.value
@@ -91,19 +91,19 @@ var ue = [
91
91
  });
92
92
  let X = u(() => P.error || K.value), _e = u(() => {
93
93
  if (P.presets) return P.presets;
94
- let e = ne(/* @__PURE__ */ new Date());
94
+ let e = te(/* @__PURE__ */ new Date());
95
95
  return [
96
96
  {
97
97
  label: L("last7"),
98
98
  get: () => ({
99
- start: s(e, -6),
99
+ start: o(e, -6),
100
100
  end: e
101
101
  })
102
102
  },
103
103
  {
104
104
  label: L("last30"),
105
105
  get: () => ({
106
- start: s(e, -29),
106
+ start: o(e, -29),
107
107
  end: e
108
108
  })
109
109
  },
@@ -119,7 +119,7 @@ var ue = [
119
119
  function Z(e) {
120
120
  F.value = e.start, I.value = e.end, W.value = z.formatDate(e.start), G.value = z.formatDate(e.end), K.value = "";
121
121
  }
122
- let ve = (e) => !!P.min && c(e, P.min) < 0 || !!P.max && c(e, P.max) > 0;
122
+ let ve = (e) => !!P.min && s(e, P.min) < 0 || !!P.max && s(e, P.max) > 0;
123
123
  function Q() {
124
124
  let e = W.value.trim() ? z.parseDate(W.value) : null, t = G.value.trim() ? z.parseDate(G.value) : null;
125
125
  if (W.value.trim() && !e || G.value.trim() && !t) {
@@ -130,7 +130,7 @@ var ue = [
130
130
  n ? K.value = L("dateBetween", {
131
131
  min: z.formatDate(P.min || n),
132
132
  max: z.formatDate(P.max || n)
133
- }) : e && t && c(t, e) < 0 ? K.value = L("endBeforeStart") : Z({
133
+ }) : e && t && s(t, e) < 0 ? K.value = L("endBeforeStart") : Z({
134
134
  start: e,
135
135
  end: t
136
136
  });
@@ -142,7 +142,7 @@ var ue = [
142
142
  Z(e.get()), V.value = !1;
143
143
  }
144
144
  function xe(e) {
145
- e.preventDefault(), U.personOpened() && y(() => J.value?.focusDay());
145
+ e.preventDefault(), U.personOpened() && ae(() => J.value?.focusDay());
146
146
  }
147
147
  function Se(e) {
148
148
  U.returnsFocus() || e.preventDefault();
@@ -153,31 +153,31 @@ var ue = [
153
153
  function $(e) {
154
154
  e.key === "Enter" ? Q() : e.key === "ArrowDown" && e.altKey && !P.disabled && (e.preventDefault(), U.intent(), V.value = !0);
155
155
  }
156
- return _({
156
+ return v({
157
157
  input: Y,
158
158
  focus: () => Y.value?.focus()
159
- }), (e, t) => (b(), d(i, v(w(B).wrapper(), {
160
- id: g.id,
161
- label: g.label,
162
- "hide-label": g.hideLabel,
163
- hint: g.hint,
159
+ }), (e, t) => (b(), d(re, y(C(B).wrapper(), {
160
+ id: _.id,
161
+ label: _.label,
162
+ "hide-label": _.hideLabel,
163
+ hint: _.hint,
164
164
  error: X.value,
165
- required: g.required,
166
- optional: g.optional
165
+ required: _.required,
166
+ optional: _.optional
167
167
  }), {
168
- default: O((e) => [h(w(le), {
168
+ default: D((e) => [g(C(ce), {
169
169
  open: H.value,
170
170
  "onUpdate:open": t[4] ||= (e) => V.value = e
171
171
  }, {
172
- default: O(() => [h(w(oe), { "as-child": "" }, {
173
- default: O(() => [m("div", v(w(B).input(), {
172
+ default: D(() => [g(C(k), { "as-child": "" }, {
173
+ default: D(() => [m("div", y(C(B).input(), {
174
174
  class: "e-input-wrap e-combo e-rangefield",
175
175
  role: "group",
176
176
  "aria-labelledby": `${e.id}-label`,
177
177
  "data-invalid": X.value ? "" : void 0,
178
- "data-disabled": g.disabled ? "" : void 0
178
+ "data-disabled": _.disabled ? "" : void 0
179
179
  }), [
180
- k(m("input", {
180
+ O(m("input", {
181
181
  id: e.id,
182
182
  ref_key: "startInput",
183
183
  ref: Y,
@@ -186,61 +186,61 @@ var ue = [
186
186
  type: "text",
187
187
  inputmode: "numeric",
188
188
  autocomplete: "off",
189
- placeholder: w(L)("startDate"),
190
- "aria-label": w(L)("startDate"),
191
- disabled: g.disabled,
192
- required: g.required,
189
+ placeholder: C(L)("startDate"),
190
+ "aria-label": C(L)("startDate"),
191
+ disabled: _.disabled,
192
+ required: _.required,
193
193
  "aria-invalid": e.ariaInvalid,
194
194
  "aria-describedby": e.ariaDescribedby,
195
195
  onInput: t[1] ||= (e) => K.value = "",
196
196
  onBlur: Q,
197
197
  onKeydown: $
198
- }, null, 40, de), [[E, W.value]]),
199
- m("span", fe, C(w(L)("to")), 1),
200
- k(m("input", {
198
+ }, null, 40, de), [[T, W.value]]),
199
+ m("span", fe, S(C(L)("to")), 1),
200
+ O(m("input", {
201
201
  "onUpdate:modelValue": t[2] ||= (e) => G.value = e,
202
202
  class: "e-input e-combo-input",
203
203
  type: "text",
204
204
  inputmode: "numeric",
205
205
  autocomplete: "off",
206
- placeholder: w(L)("endDate"),
207
- "aria-label": w(L)("endDate"),
208
- disabled: g.disabled,
209
- required: g.required,
206
+ placeholder: C(L)("endDate"),
207
+ "aria-label": C(L)("endDate"),
208
+ disabled: _.disabled,
209
+ required: _.required,
210
210
  "aria-invalid": e.ariaInvalid,
211
211
  "aria-describedby": e.ariaDescribedby,
212
212
  onInput: t[3] ||= (e) => K.value = "",
213
213
  onBlur: Q,
214
214
  onKeydown: $
215
- }, null, 40, pe), [[E, G.value]]),
216
- g.startName ? (b(), p("input", {
215
+ }, null, 40, pe), [[T, G.value]]),
216
+ _.startName ? (b(), p("input", {
217
217
  key: 0,
218
218
  type: "hidden",
219
- name: g.startName,
220
- value: w(l)(F.value)
219
+ name: _.startName,
220
+ value: C(c)(F.value)
221
221
  }, null, 8, me)) : f("", !0),
222
- g.endName ? (b(), p("input", {
222
+ _.endName ? (b(), p("input", {
223
223
  key: 1,
224
224
  type: "hidden",
225
- name: g.endName,
226
- value: w(l)(I.value)
225
+ name: _.endName,
226
+ value: C(c)(I.value)
227
227
  }, null, 8, j)) : f("", !0),
228
- h(w(A), v({ "as-child": "" }, ge), {
229
- default: O(() => [m("button", {
228
+ g(C(le), y({ "as-child": "" }, ge), {
229
+ default: D(() => [m("button", {
230
230
  type: "button",
231
231
  class: "e-combo-btn",
232
- "aria-label": w(L)("chooseDates"),
233
- disabled: g.disabled
234
- }, [h(te, { name: "calendar" })], 8, M)]),
232
+ "aria-label": C(L)("chooseDates"),
233
+ disabled: _.disabled
234
+ }, [g(i, { name: "calendar" })], 8, M)]),
235
235
  _: 1
236
236
  }, 16)
237
237
  ], 16, ue)]),
238
238
  _: 2
239
- }, 1024), h(w(ce), { to: w(he) }, {
240
- default: O(() => [h(w(se), {
239
+ }, 1024), g(C(se), { to: C(he) }, {
240
+ default: D(() => [g(C(A), {
241
241
  class: "e-calpanel e-root",
242
- "aria-label": w(L)("chooseDates"),
243
- dir: w(R).dir ?? void 0,
242
+ "aria-label": C(L)("chooseDates"),
243
+ dir: C(R).dir ?? void 0,
244
244
  side: "bottom",
245
245
  align: "start",
246
246
  "side-offset": 6,
@@ -249,14 +249,14 @@ var ue = [
249
249
  onCloseAutoFocus: Se,
250
250
  onEscapeKeyDown: Ce
251
251
  }, {
252
- default: O(() => [h(re, {
252
+ default: D(() => [g(ne, {
253
253
  ref_key: "calendar",
254
254
  ref: J,
255
255
  mode: "range",
256
256
  start: q.value.start,
257
257
  end: q.value.end,
258
- min: g.min,
259
- max: g.max,
258
+ min: _.min,
259
+ max: _.max,
260
260
  footer: !1,
261
261
  onRangeChange: ye
262
262
  }, null, 8, [
@@ -264,12 +264,12 @@ var ue = [
264
264
  "end",
265
265
  "min",
266
266
  "max"
267
- ]), m("div", N, [(b(!0), p(ie, null, S(_e.value, (e) => (b(), d(o, {
267
+ ]), m("div", N, [(b(!0), p(l, null, oe(_e.value, (e) => (b(), d(a, {
268
268
  key: e.label,
269
269
  variant: "outline",
270
270
  onClick: (t) => be(e)
271
271
  }, {
272
- default: O(() => [ae(C(e.label), 1)]),
272
+ default: D(() => [h(S(e.label), 1)]),
273
273
  _: 2
274
274
  }, 1032, ["onClick"]))), 128))])]),
275
275
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"ERangePicker.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EField","_mergeProps","_unref","_withCtx","_createVNode","_createElementVNode","_withDirectives","_vModelText","_toDisplayString","_createElementBlock","_createCommentVNode","EIcon","ECalendar","_Fragment","_renderList","EButton","_createTextVNode","EIcon_default","EField_default","EButton_default","ECalendar_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","ERangePicker_vue_vue_type_script_setup_true_lang_default","\"start\"","\"startModifiers\"","\"end\"","\"endModifiers\"","\"open\"","\"openModifiers\"","__expose","props","__props","start","useModel","end","t","useMessages","config","useConfig","loc","useLocale","portal","usePortalTarget","attrs","useFieldAttrs","open","shown","computed","quiet","useQuietFocus","el","trigger","startText","ref","endText","typedError","draft","calendar","startInput","watch","isOpen","shownError","presets","today","startOfDay","addDays","setRange","r","outOfBounds","compareDays","d","commitText","a","b","bad","onRange","applyPreset","p","onOpenFocus","nextTick","onCloseFocus","onEscape","onKey","openBlock","createBlock","mergeProps","unref","withCtx","createVNode","PopoverRoot","_cache","$event","PopoverAnchor","createElementVNode","field","withDirectives","vModelText","toDisplayString","createElementBlock","isoDate","createCommentVNode","PopoverTrigger","PopoverPortal","PopoverContent","Fragment","renderList","createTextVNode"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** A word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form. */\n endName?: string;\n /** Buttons under the calendar that choose a span at once. Default: Last 7 days, Last 30 days, This month. */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst start = defineModel<Date | null>(\"start\", { default: null });\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ERangePicker.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","EField","_mergeProps","_unref","_withCtx","_createVNode","_createElementVNode","_withDirectives","_vModelText","_toDisplayString","_createElementBlock","_createCommentVNode","EIcon","ECalendar","_Fragment","_renderList","EButton","_createTextVNode","EIcon_default","EButton_default","ECalendar_default","EField_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","ERangePicker_vue_vue_type_script_setup_true_lang_default","\"start\"","\"startModifiers\"","\"end\"","\"endModifiers\"","\"open\"","\"openModifiers\"","__expose","props","__props","start","useModel","end","t","useMessages","config","useConfig","loc","useLocale","portal","usePortalTarget","attrs","useFieldAttrs","open","shown","computed","quiet","useQuietFocus","el","trigger","startText","ref","endText","typedError","draft","calendar","startInput","watch","isOpen","shownError","presets","today","startOfDay","addDays","setRange","r","outOfBounds","compareDays","d","commitText","a","b","bad","onRange","applyPreset","p","onOpenFocus","nextTick","onCloseFocus","onEscape","onKey","openBlock","createBlock","mergeProps","unref","withCtx","createVNode","PopoverRoot","_cache","$event","PopoverAnchor","createElementVNode","field","withDirectives","vModelText","toDisplayString","createElementBlock","isoDate","createCommentVNode","PopoverTrigger","PopoverPortal","PopoverContent","Fragment","renderList","createTextVNode"],"sources":["../../../src/components/RangePicker/ERangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger } from \"reka-ui\";\nimport EButton from \"../Button/EButton.vue\";\nimport ECalendar from \"../Calendar/ECalendar.vue\";\nimport type { CalendarRange } from \"../Calendar/ECalendar.vue\";\nimport EField from \"../Field/EField.vue\";\nimport EIcon from \"../Icon/EIcon.vue\";\nimport { addDays, compareDays, isoDate, startOfDay } from \"../Calendar/dates.js\";\nimport { useConfig, useMessages, usePortalTarget } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useQuietFocus } from \"../Select/quietFocus.js\";\nimport { useLocale } from \"../../composables/useLocale.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\nimport \"../Combobox/combo.css\";\nimport \"../DatePicker/picker.css\";\n\nexport interface RangePreset {\n /** The button text, such as \"Last 7 days\". */\n label: string;\n /** The span the button chooses. */\n get: () => { start: Date; end: Date };\n}\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the field. It also names the group. */\n label: string;\n /** Keep the label for screen readers and remove it from the page. */\n hideLabel?: boolean;\n /** Help that stays under the field. */\n hint?: string;\n /** What to fix. Replaces the hint and marks both boxes invalid. A typed span that cannot be used shows its own error. */\n error?: string;\n /** The `required` attribute and a word beside the label. */\n required?: boolean;\n /** A word beside the label. Flag whichever is rarer. */\n optional?: boolean;\n /** Disables both boxes and the button. */\n disabled?: boolean;\n /** The earliest date that can be chosen or typed. */\n min?: Date;\n /** The latest date that can be chosen or typed. */\n max?: Date;\n /** Submits the first date as `YYYY-MM-DD` with a form, through a hidden input. */\n startName?: string;\n /** Submits the last date as `YYYY-MM-DD` with a form, through a hidden input. */\n endName?: string;\n /** Buttons under the calendar; one sets the span and closes. @default Last 7 days, Last 30 days, This month */\n presets?: RangePreset[];\n /** The id of the start box; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** The first date of the span. */\nconst start = defineModel<Date | null>(\"start\", { default: null });\n/** The last date of the span. */\nconst end = defineModel<Date | null>(\"end\", { default: null });\n\nconst t = useMessages();\nconst config = useConfig();\nconst loc = useLocale();\nconst portal = usePortalTarget();\nconst attrs = useFieldAttrs();\n\n/** Whether the calendar is open. A disabled field never opens. */\nconst open = defineModel<boolean>(\"open\", { default: false });\nconst shown = computed(() => open.value && !props.disabled);\nconst quiet = useQuietFocus(shown, (el) => !!el.closest(\".e-calpanel, .e-combo\"));\nconst trigger = { onClick: quiet.intent, onKeydown: quiet.intent };\n\nconst startText = ref(loc.formatDate(start.value));\nconst endText = ref(loc.formatDate(end.value));\nconst typedError = ref(\"\");\nconst draft = ref<CalendarRange>({ start: start.value, end: end.value });\nconst calendar = ref<InstanceType<typeof ECalendar> | null>(null);\nconst startInput = ref<HTMLInputElement | null>(null);\n\nwatch([() => start.value?.getTime(), () => end.value?.getTime(), () => config.locale], () => {\n startText.value = loc.formatDate(start.value);\n endText.value = loc.formatDate(end.value);\n});\nwatch(open, (isOpen) => {\n if (isOpen) draft.value = { start: start.value, end: end.value };\n});\n\nconst shownError = computed(() => props.error || typedError.value);\n\nconst presets = computed<RangePreset[]>(() => {\n if (props.presets) return props.presets;\n const today = startOfDay(new Date());\n return [\n { label: t(\"last7\"), get: () => ({ start: addDays(today, -6), end: today }) },\n { label: t(\"last30\"), get: () => ({ start: addDays(today, -29), end: today }) },\n {\n label: t(\"thisMonth\"),\n get: () => ({ start: new Date(today.getFullYear(), today.getMonth(), 1, 12), end: today }),\n },\n ];\n});\n\nfunction setRange(r: { start: Date | null; end: Date | null }) {\n start.value = r.start;\n end.value = r.end;\n startText.value = loc.formatDate(r.start);\n endText.value = loc.formatDate(r.end);\n typedError.value = \"\";\n}\n\nconst outOfBounds = (d: Date) =>\n (!!props.min && compareDays(d, props.min) < 0) || (!!props.max && compareDays(d, props.max) > 0);\n\nfunction commitText() {\n const a = startText.value.trim() ? loc.parseDate(startText.value) : null;\n const b = endText.value.trim() ? loc.parseDate(endText.value) : null;\n if ((startText.value.trim() && !a) || (endText.value.trim() && !b)) {\n typedError.value = t(\"datesError\", { format: loc.dateFormatLabel() });\n return;\n }\n const bad = [a, b].find((d) => d && outOfBounds(d));\n if (bad) {\n typedError.value = t(\"dateBetween\", {\n min: loc.formatDate(props.min || bad),\n max: loc.formatDate(props.max || bad),\n });\n return;\n }\n if (a && b && compareDays(b, a) < 0) {\n typedError.value = t(\"endBeforeStart\");\n return;\n }\n setRange({ start: a, end: b });\n}\n\nfunction onRange(r: CalendarRange) {\n draft.value = r;\n if (r.start && r.end) {\n setRange(r);\n open.value = false;\n }\n}\nfunction applyPreset(p: RangePreset) {\n setRange(p.get());\n open.value = false;\n}\n\nfunction onOpenFocus(e: Event) {\n e.preventDefault();\n if (!quiet.personOpened()) return;\n void nextTick(() => calendar.value?.focusDay());\n}\nfunction onCloseFocus(e: Event) {\n if (!quiet.returnsFocus()) e.preventDefault();\n}\nfunction onEscape(e: KeyboardEvent) {\n if (calendar.value && calendar.value.view !== \"days\") e.preventDefault();\n}\nfunction onKey(e: KeyboardEvent) {\n if (e.key === \"Enter\") commitText();\n else if (e.key === \"ArrowDown\" && e.altKey && !props.disabled) {\n e.preventDefault();\n quiet.intent();\n open.value = true;\n }\n}\n\ndefineExpose({\n input: startInput,\n focus: () => startInput.value?.focus(),\n});\n</script>\n\n<template>\n <EField\n v-bind=\"attrs.wrapper()\"\n :id=\"id\"\n :label=\"label\"\n :hide-label=\"hideLabel\"\n :hint=\"hint\"\n :error=\"shownError\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <PopoverRoot :open=\"shown\" @update:open=\"open = $event\">\n <PopoverAnchor as-child>\n <div\n v-bind=\"attrs.input()\"\n class=\"e-input-wrap e-combo e-rangefield\"\n role=\"group\"\n :aria-labelledby=\"`${field.id}-label`\"\n :data-invalid=\"shownError ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n >\n <input\n :id=\"field.id\"\n ref=\"startInput\"\n v-model=\"startText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('startDate')\"\n :aria-label=\"t('startDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <span class=\"e-range-sep\" aria-hidden=\"true\">{{ t(\"to\") }}</span>\n <input\n v-model=\"endText\"\n class=\"e-input e-combo-input\"\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n :placeholder=\"t('endDate')\"\n :aria-label=\"t('endDate')\"\n :disabled=\"disabled\"\n :required=\"required\"\n :aria-invalid=\"field.ariaInvalid\"\n :aria-describedby=\"field.ariaDescribedby\"\n @input=\"typedError = ''\"\n @blur=\"commitText\"\n @keydown=\"onKey\"\n />\n <input v-if=\"startName\" type=\"hidden\" :name=\"startName\" :value=\"isoDate(start)\" />\n <input v-if=\"endName\" type=\"hidden\" :name=\"endName\" :value=\"isoDate(end)\" />\n <PopoverTrigger as-child v-bind=\"trigger\">\n <button type=\"button\" class=\"e-combo-btn\" :aria-label=\"t('chooseDates')\" :disabled=\"disabled\">\n <EIcon name=\"calendar\" />\n </button>\n </PopoverTrigger>\n </div>\n </PopoverAnchor>\n <PopoverPortal :to=\"portal\">\n <PopoverContent\n class=\"e-calpanel e-root\"\n :aria-label=\"t('chooseDates')\"\n :dir=\"config.dir ?? undefined\"\n side=\"bottom\"\n align=\"start\"\n :side-offset=\"6\"\n :collision-padding=\"8\"\n @open-auto-focus=\"onOpenFocus\"\n @close-auto-focus=\"onCloseFocus\"\n @escape-key-down=\"onEscape\"\n >\n <ECalendar\n ref=\"calendar\"\n mode=\"range\"\n :start=\"draft.start\"\n :end=\"draft.end\"\n :min=\"min\"\n :max=\"max\"\n :footer=\"false\"\n @range-change=\"onRange\"\n />\n <div class=\"e-cal-presets\">\n <EButton v-for=\"p in presets\" :key=\"p.label\" variant=\"outline\" @click=\"applyPreset(p)\">\n {{ p.label }}\n </EButton>\n </div>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.composites {\n .e-cal-presets {\n display: flex;\n flex-wrap: wrap;\n gap: var(--e-space-2);\n margin-top: var(--e-space-3);\n padding-top: var(--e-space-3);\n border-top: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-rangefield .e-input {\n flex: 1 1 5rem;\n }\n\n .e-range-sep {\n flex: none;\n font: 500 var(--e-text-sm) / 1 var(--e-font-sans);\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ESearchBar.js","names":["_sfc_main","ESearchBar_vue_vue_type_script_setup_true_lang_default","ESearchBar_default"],"sources":["../../../src/components/SearchBar/ESearchBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport EIcon from \"../Icon/EIcon.vue\";\nimport EButton from \"../Button/EButton.vue\";\nimport { ref } from \"vue\";\nimport { useMessages } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nwithDefaults(\n defineProps<{\n /** What screen readers call the box. Default \"Search\". */\n label?: string;\n /** Say what can be searched, briefly. Default \"Search\". */\n placeholder?: string;\n /** The text on the button. Default \"Search\". */\n action?: string;\n /** Leaves out the button, for a box that filters or searches as you type. Enter still submits. */\n hideAction?: boolean;\n /** The clear button, shown when there is text. On by default. */\n clearable?: boolean;\n /** The name submitted with a form. Default `q`. */\n name?: string;\n /** Search is unavailable. Say why in a Notice. */\n disabled?: boolean;\n }>(),\n { clearable: true },\n);\n\nconst emit = defineEmits<{\n /** The person pressed Enter or the button. */\n submit: [value: string];\n}>();\n\nconst model = defineModel<string>({ default: \"\" });\n\nconst t = useMessages();\nconst attrs = useFieldAttrs();\nconst box = ref<HTMLInputElement | null>(null);\n\nfunction clear() {\n model.value = \"\";\n box.value?.focus();\n}\n\ndefineExpose({\n input: box,\n focus: () => box.value?.focus(),\n});\n</script>\n\n<template>\n <form\n class=\"e-search\"\n v-bind=\"attrs.wrapper()\"\n role=\"search\"\n :aria-label=\"label || t('search')\"\n @submit.prevent=\"emit('submit', model)\"\n >\n <span class=\"e-search-lead\"><EIcon name=\"search\" /></span>\n <input\n ref=\"box\"\n v-bind=\"attrs.input()\"\n class=\"e-input\"\n :name=\"name || 'q'\"\n :aria-label=\"label || t('search')\"\n :placeholder=\"placeholder || t('search')\"\n :value=\"model\"\n :disabled=\"disabled\"\n @input=\"model = ($event.target as HTMLInputElement).value\"\n />\n <button\n v-if=\"clearable && model && !disabled\"\n type=\"button\"\n class=\"e-search-clear\"\n :aria-label=\"t('clear')\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <EIcon name=\"x\" />\n </button>\n <EButton v-if=\"!hideAction\" type=\"submit\" :disabled=\"disabled\">{{ action || t(\"search\") }}</EButton>\n </form>\n</template>\n\n<style>\n@layer e.controls {\n .e-search {\n display: flex;\n align-items: center;\n gap: var(--e-space-1);\n height: var(--e-control-height);\n padding: 0 var(--e-space-1) 0 var(--e-space-2);\n border: var(--e-stroke-edge) solid var(--e-border-strong);\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-well);\n transition: border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search:hover {\n border-color: var(--e-ink);\n }\n\n .e-search .e-btn {\n position: relative;\n height: calc(var(--e-control-height) - 6px);\n padding: 0 var(--e-space-3);\n font-size: var(--e-text-md);\n }\n\n .e-search .e-btn::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n }\n\n .e-search-clear {\n display: inline-grid;\n place-items: center;\n position: relative;\n flex: none;\n width: calc(var(--e-control-height) - 9px);\n height: calc(var(--e-control-height) - 9px);\n padding: 0;\n border: 0;\n border-radius: var(--e-radius-sm);\n background: transparent;\n color: var(--e-ink);\n cursor: pointer;\n transition: background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search-clear::after {\n content: \"\";\n position: absolute;\n inset: -5px;\n }\n\n .e-search-clear:hover {\n background: var(--e-wash-hover);\n box-shadow: inset 0 0 0 1px var(--e-wash-ring);\n }\n\n .e-search-clear:active {\n background: var(--e-wash-press);\n box-shadow: inset 0 0 0 1.5px var(--e-ink);\n }\n\n .e-search-clear:focus-visible {\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: calc(-1 * var(--e-stroke-focus));\n }\n\n .e-search-lead {\n display: grid;\n place-items: center;\n flex: none;\n width: 28px;\n color: var(--e-muted);\n }\n\n .e-search .e-input {\n flex: 1;\n text-overflow: ellipsis;\n height: 100%;\n border: 0;\n background: transparent;\n box-shadow: none;\n font-size: var(--e-text-md);\n padding-inline: var(--e-space-2);\n }\n\n .e-search .e-input:hover,\n .e-search .e-input:focus {\n border: 0;\n background: transparent;\n }\n\n .e-search .e-input:focus-visible {\n outline: none;\n }\n\n .e-search:focus-within {\n border-color: var(--e-focus-field);\n outline: var(--e-stroke-focus) solid var(--e-focus-field);\n outline-offset: var(--e-focus-gap-field);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-search {\n transition: none;\n }\n }\n\n @media print {\n .e-search {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ESearchBar.js","names":["_sfc_main","ESearchBar_vue_vue_type_script_setup_true_lang_default","ESearchBar_default"],"sources":["../../../src/components/SearchBar/ESearchBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport EIcon from \"../Icon/EIcon.vue\";\nimport EButton from \"../Button/EButton.vue\";\nimport { ref } from \"vue\";\nimport { useMessages } from \"../../config.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"../TextField/input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nwithDefaults(\n defineProps<{\n /** Names the box and the search landmark; there is no visible label. @default \"Search\" */\n label?: string;\n /** Say what can be searched, briefly. @default \"Search\" */\n placeholder?: string;\n /** The text on the button. @default \"Search\" */\n action?: string;\n /** Leaves out the button, for a box that filters or searches as you type. Enter still submits. */\n hideAction?: boolean;\n /** The clear button, shown when there is text. On by default. */\n clearable?: boolean;\n /** The name submitted with a form. @default \"q\" */\n name?: string;\n /** Disables the box and button. Say why in an `ENotice`. */\n disabled?: boolean;\n }>(),\n { clearable: true },\n);\n\nconst emit = defineEmits<{\n /** The person pressed Enter or the button. */\n submit: [value: string];\n}>();\n\n/** The text. */\nconst model = defineModel<string>({ default: \"\" });\n\nconst t = useMessages();\nconst attrs = useFieldAttrs();\nconst box = ref<HTMLInputElement | null>(null);\n\nfunction clear() {\n model.value = \"\";\n box.value?.focus();\n}\n\ndefineExpose({\n input: box,\n focus: () => box.value?.focus(),\n});\n</script>\n\n<template>\n <form\n class=\"e-search\"\n v-bind=\"attrs.wrapper()\"\n role=\"search\"\n :aria-label=\"label || t('search')\"\n @submit.prevent=\"emit('submit', model)\"\n >\n <span class=\"e-search-lead\"><EIcon name=\"search\" /></span>\n <input\n ref=\"box\"\n v-bind=\"attrs.input()\"\n class=\"e-input\"\n :name=\"name || 'q'\"\n :aria-label=\"label || t('search')\"\n :placeholder=\"placeholder || t('search')\"\n :value=\"model\"\n :disabled=\"disabled\"\n @input=\"model = ($event.target as HTMLInputElement).value\"\n />\n <button\n v-if=\"clearable && model && !disabled\"\n type=\"button\"\n class=\"e-search-clear\"\n :aria-label=\"t('clear')\"\n @mousedown.prevent\n @click=\"clear\"\n >\n <EIcon name=\"x\" />\n </button>\n <EButton v-if=\"!hideAction\" type=\"submit\" :disabled=\"disabled\">{{ action || t(\"search\") }}</EButton>\n </form>\n</template>\n\n<style>\n@layer e.controls {\n .e-search {\n display: flex;\n align-items: center;\n gap: var(--e-space-1);\n height: var(--e-control-height);\n padding: 0 var(--e-space-1) 0 var(--e-space-2);\n border: var(--e-stroke-edge) solid var(--e-border-strong);\n\n --e-bc: var(--e-border-strong);\n\n outline: var(--e-stroke-edge) solid var(--e-bc);\n outline-offset: calc(-1 * var(--e-stroke-edge));\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-well);\n transition: border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search:hover {\n border-color: var(--e-ink);\n\n --e-bc: var(--e-ink);\n }\n\n .e-search .e-btn {\n position: relative;\n height: calc(var(--e-control-height) - 6px);\n padding: 0 var(--e-space-3);\n font-size: var(--e-text-md);\n }\n\n .e-search .e-btn::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n }\n\n .e-search-clear {\n display: inline-grid;\n place-items: center;\n position: relative;\n flex: none;\n width: calc(var(--e-control-height) - 9px);\n height: calc(var(--e-control-height) - 9px);\n padding: 0;\n border: 0;\n border-radius: var(--e-radius-sm);\n background: transparent;\n color: var(--e-ink);\n cursor: pointer;\n transition: background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-search-clear::after {\n content: \"\";\n position: absolute;\n inset: -5px;\n }\n\n .e-search-clear:hover {\n background: var(--e-wash-hover);\n box-shadow: inset 0 0 0 var(--e-stroke-hair) var(--e-wash-ring);\n }\n\n .e-search-clear:active {\n background: var(--e-wash-press);\n box-shadow: inset 0 0 0 var(--e-stroke-edge) var(--e-ink);\n }\n\n .e-search-clear:focus-visible {\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: calc(-1 * var(--e-stroke-focus));\n }\n\n .e-search-lead {\n display: grid;\n place-items: center;\n flex: none;\n width: var(--e-space-8);\n color: var(--e-muted);\n }\n\n .e-search .e-input {\n flex: 1;\n text-overflow: ellipsis;\n height: 100%;\n border: 0;\n outline: 0;\n background: transparent;\n box-shadow: none;\n font-size: var(--e-text-md);\n padding-inline: var(--e-space-2);\n }\n\n .e-search .e-input:hover,\n .e-search .e-input:focus {\n border: 0;\n background: transparent;\n }\n\n .e-search .e-input:focus-visible {\n outline: none;\n }\n\n .e-search:focus-within {\n border-color: var(--e-focus-field);\n\n --e-bc: var(--e-focus-field);\n\n outline: var(--e-stroke-focus) solid var(--e-focus-field);\n outline-offset: var(--e-focus-gap-field);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-search {\n transition: none;\n }\n }\n\n @media print {\n .e-search {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":""}
@@ -1,20 +1,21 @@
1
1
  type __VLS_Props = {
2
- /** What screen readers call the box. Default "Search". */
2
+ /** Names the box and the search landmark; there is no visible label. @default "Search" */
3
3
  label?: string;
4
- /** Say what can be searched, briefly. Default "Search". */
4
+ /** Say what can be searched, briefly. @default "Search" */
5
5
  placeholder?: string;
6
- /** The text on the button. Default "Search". */
6
+ /** The text on the button. @default "Search" */
7
7
  action?: string;
8
8
  /** Leaves out the button, for a box that filters or searches as you type. Enter still submits. */
9
9
  hideAction?: boolean;
10
10
  /** The clear button, shown when there is text. On by default. */
11
11
  clearable?: boolean;
12
- /** The name submitted with a form. Default `q`. */
12
+ /** The name submitted with a form. @default "q" */
13
13
  name?: string;
14
- /** Search is unavailable. Say why in a Notice. */
14
+ /** Disables the box and button. Say why in an `ENotice`. */
15
15
  disabled?: boolean;
16
16
  };
17
17
  type __VLS_ModelProps = {
18
+ /** The text. */
18
19
  modelValue?: string;
19
20
  };
20
21
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
@@ -22,11 +23,11 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {
22
23
  input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
23
24
  focus: () => void | undefined;
24
25
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
25
- "update:modelValue": (value: string) => any;
26
26
  submit: (value: string) => any;
27
+ "update:modelValue": (value: string) => any;
27
28
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
28
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
29
29
  onSubmit?: ((value: string) => any) | undefined;
30
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
30
31
  }>, {
31
32
  clearable: boolean;
32
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;