@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":"ESurface.js","names":["_sfc_main","ESurface_vue_vue_type_script_setup_true_lang_default","ESurface_default"],"sources":["../../../src/components/Surface/ESurface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EActions from \"../Actions/EActions.vue\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The element to render, `div` by default. */\n as?: string;\n /** Padding: `sm`, `md` or `lg`. Omit for none. */\n pad?: \"sm\" | \"md\" | \"lg\";\n /** `default`, `tint` (the tinted look) or `float` (the lifted look of a Toast). */\n tone?: \"default\" | \"tint\" | \"float\";\n /** Hides what overflows the rounded corners. */\n clip?: boolean;\n }>(),\n { as: \"div\" },\n);\n\ndefineSlots<{\n /** The content of the card. */\n default(): unknown;\n /** Buttons for a bar at the foot of the card, edge to edge. The body takes the remaining height so cards in a row end level. */\n actions(): unknown;\n}>();\n\nconst tone = computed(() => (props.tone && props.tone !== \"default\" ? `e-surface--${props.tone}` : null));\nconst pad = computed(() => (props.pad ? `e-surface--pad-${props.pad}` : null));\nconst barElement = computed(() => (/^(article|section|aside)$/.test(props.as) ? \"footer\" : \"div\"));\n</script>\n\n<template>\n <component\n :is=\"as\"\n class=\"e-surface\"\n :class=\"[tone, $slots.actions ? 'e-surface--actions' : [pad, clip && 'e-surface--clip']]\"\n >\n <template v-if=\"$slots.actions\">\n <div class=\"e-surface-body\" :class=\"pad\">\n <slot />\n </div>\n <EActions :as=\"barElement\" bar>\n <slot name=\"actions\" />\n </EActions>\n </template>\n <slot v-else />\n </component>\n</template>\n\n<style>\n@layer e.blocks {\n .e-surface {\n min-width: 0;\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-edge);\n }\n\n .e-surface--tint {\n background: var(--e-surface-tint);\n }\n\n .e-surface--clip {\n overflow: hidden;\n }\n\n .e-surface--actions {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .e-surface-body {\n flex: 1;\n min-width: 0;\n }\n\n .e-surface > .e-actions--bar:last-child {\n border-end-start-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-surface--float {\n box-shadow: var(--e-float);\n }\n\n .e-surface--pad-sm {\n padding: var(--e-space-3) var(--e-space-4);\n }\n\n .e-surface--pad-md {\n padding: var(--e-space-4);\n }\n\n .e-surface--pad-lg {\n padding: var(--e-space-6);\n }\n\n @media print {\n .e-surface {\n box-shadow: none;\n border: 1px solid #000;\n break-inside: avoid;\n }\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ESurface.js","names":["_sfc_main","ESurface_vue_vue_type_script_setup_true_lang_default","ESurface_default"],"sources":["../../../src/components/Surface/ESurface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EActions from \"../Actions/EActions.vue\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The element to render, `div` by default. Use `article`, `section` or `aside` for a real block. */\n as?: string;\n /** Padding: `sm`, `md` or `lg`. None by default. */\n pad?: \"sm\" | \"md\" | \"lg\";\n /** The lifted shadow of something floating above the page, such as a Toast. */\n raised?: boolean;\n /** Hides what overflows the rounded corners. Ignored when there is an `actions` slot. */\n clip?: boolean;\n }>(),\n { as: \"div\" },\n);\n\ndefineSlots<{\n /** The content of the card. */\n default(): unknown;\n /** Buttons for a bar at the foot of the card, edge to edge. The body takes the remaining height so cards in a row end level. */\n actions(): unknown;\n}>();\n\nconst pad = computed(() => (props.pad ? `e-surface--pad-${props.pad}` : null));\nconst barElement = computed(() => (/^(article|section|aside)$/.test(props.as) ? \"footer\" : \"div\"));\n</script>\n\n<template>\n <component\n :is=\"as\"\n class=\"e-surface\"\n :class=\"[raised && 'e-surface--raised', $slots.actions ? 'e-surface--actions' : [pad, clip && 'e-surface--clip']]\"\n >\n <template v-if=\"$slots.actions\">\n <div class=\"e-surface-body\" :class=\"pad\">\n <slot />\n </div>\n <EActions :as=\"barElement\" bar>\n <slot name=\"actions\" />\n </EActions>\n </template>\n <slot v-else />\n </component>\n</template>\n\n<style>\n@layer e.blocks {\n .e-surface {\n min-width: 0;\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-edge);\n outline: var(--e-stroke-card) solid var(--e-border);\n outline-offset: 0;\n }\n\n .e-surface--clip {\n overflow: hidden;\n }\n\n .e-surface--actions {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .e-surface-body {\n flex: 1;\n min-width: 0;\n }\n\n .e-surface > .e-actions--bar:last-child {\n border-end-start-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-surface--raised {\n box-shadow: var(--e-float);\n outline: var(--e-stroke-card) solid var(--e-border);\n outline-offset: 0;\n }\n\n .e-surface--pad-sm {\n padding: var(--e-space-3) var(--e-space-4);\n }\n\n .e-surface--pad-md {\n padding: var(--e-space-4);\n }\n\n .e-surface--pad-lg {\n padding: var(--e-space-6);\n }\n\n @media print {\n .e-surface {\n box-shadow: none;\n outline: 0;\n border: var(--e-stroke-hair) solid var(--e-print-ink, #000);\n break-inside: avoid;\n }\n }\n\n @media (forced-colors: active) {\n .e-surface {\n outline-color: CanvasText;\n }\n }\n}\n</style>\n"],"mappings":""}
@@ -1,11 +1,11 @@
1
1
  type __VLS_Props = {
2
- /** The element to render, `div` by default. */
2
+ /** The element to render, `div` by default. Use `article`, `section` or `aside` for a real block. */
3
3
  as?: string;
4
- /** Padding: `sm`, `md` or `lg`. Omit for none. */
4
+ /** Padding: `sm`, `md` or `lg`. None by default. */
5
5
  pad?: "sm" | "md" | "lg";
6
- /** `default`, `tint` (the tinted look) or `float` (the lifted look of a Toast). */
7
- tone?: "default" | "tint" | "float";
8
- /** Hides what overflows the rounded corners. */
6
+ /** The lifted shadow of something floating above the page, such as a Toast. */
7
+ raised?: boolean;
8
+ /** Hides what overflows the rounded corners. Ignored when there is an `actions` slot. */
9
9
  clip?: boolean;
10
10
  };
11
11
  type __VLS_Slots = {
@@ -7,14 +7,14 @@ var p = /*@__PURE__*/ s({
7
7
  props: {
8
8
  as: { default: "div" },
9
9
  pad: {},
10
- tone: {},
10
+ raised: { type: Boolean },
11
11
  clip: { type: Boolean }
12
12
  },
13
13
  setup(s) {
14
- let p = s, m = n(() => p.tone && p.tone !== "default" ? `e-surface--${p.tone}` : null), h = n(() => p.pad ? `e-surface--pad-${p.pad}` : null), g = n(() => /^(article|section|aside)$/.test(p.as) ? "footer" : "div");
15
- return (n, p) => (l(), r(d(s.as), { class: c(["e-surface", [m.value, n.$slots.actions ? "e-surface--actions" : [h.value, s.clip && "e-surface--clip"]]]) }, {
16
- default: f(() => [n.$slots.actions ? (l(), i(t, { key: 0 }, [a("div", { class: c(["e-surface-body", h.value]) }, [u(n.$slots, "default")], 2), o(e, {
17
- as: g.value,
14
+ let p = s, m = n(() => p.pad ? `e-surface--pad-${p.pad}` : null), h = n(() => /^(article|section|aside)$/.test(p.as) ? "footer" : "div");
15
+ return (n, p) => (l(), r(d(s.as), { class: c(["e-surface", [s.raised && "e-surface--raised", n.$slots.actions ? "e-surface--actions" : [m.value, s.clip && "e-surface--clip"]]]) }, {
16
+ default: f(() => [n.$slots.actions ? (l(), i(t, { key: 0 }, [a("div", { class: c(["e-surface-body", m.value]) }, [u(n.$slots, "default")], 2), o(e, {
17
+ as: h.value,
18
18
  bar: ""
19
19
  }, {
20
20
  default: f(() => [u(n.$slots, "actions")]),
@@ -1 +1 @@
1
- {"version":3,"file":"ESurface.vue_vue_type_script_setup_true_lang.js","names":["$slots","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementBlock","_Fragment","_createElementVNode","_renderSlot","_createVNode","EActions","EActions_default","ESurface_vue_vue_type_script_setup_true_lang_default","props","__props","tone","computed","pad","barElement","openBlock","createBlock","resolveDynamicComponent","normalizeClass","_ctx","withCtx","createElementBlock","Fragment","createElementVNode","renderSlot","createVNode"],"sources":["../../../src/components/Surface/ESurface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EActions from \"../Actions/EActions.vue\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The element to render, `div` by default. */\n as?: string;\n /** Padding: `sm`, `md` or `lg`. Omit for none. */\n pad?: \"sm\" | \"md\" | \"lg\";\n /** `default`, `tint` (the tinted look) or `float` (the lifted look of a Toast). */\n tone?: \"default\" | \"tint\" | \"float\";\n /** Hides what overflows the rounded corners. */\n clip?: boolean;\n }>(),\n { as: \"div\" },\n);\n\ndefineSlots<{\n /** The content of the card. */\n default(): unknown;\n /** Buttons for a bar at the foot of the card, edge to edge. The body takes the remaining height so cards in a row end level. */\n actions(): unknown;\n}>();\n\nconst tone = computed(() => (props.tone && props.tone !== \"default\" ? `e-surface--${props.tone}` : null));\nconst pad = computed(() => (props.pad ? `e-surface--pad-${props.pad}` : null));\nconst barElement = computed(() => (/^(article|section|aside)$/.test(props.as) ? \"footer\" : \"div\"));\n</script>\n\n<template>\n <component\n :is=\"as\"\n class=\"e-surface\"\n :class=\"[tone, $slots.actions ? 'e-surface--actions' : [pad, clip && 'e-surface--clip']]\"\n >\n <template v-if=\"$slots.actions\">\n <div class=\"e-surface-body\" :class=\"pad\">\n <slot />\n </div>\n <EActions :as=\"barElement\" bar>\n <slot name=\"actions\" />\n </EActions>\n </template>\n <slot v-else />\n </component>\n</template>\n\n<style>\n@layer e.blocks {\n .e-surface {\n min-width: 0;\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-edge);\n }\n\n .e-surface--tint {\n background: var(--e-surface-tint);\n }\n\n .e-surface--clip {\n overflow: hidden;\n }\n\n .e-surface--actions {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .e-surface-body {\n flex: 1;\n min-width: 0;\n }\n\n .e-surface > .e-actions--bar:last-child {\n border-end-start-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-surface--float {\n box-shadow: var(--e-float);\n }\n\n .e-surface--pad-sm {\n padding: var(--e-space-3) var(--e-space-4);\n }\n\n .e-surface--pad-md {\n padding: var(--e-space-4);\n }\n\n .e-surface--pad-lg {\n padding: var(--e-space-6);\n }\n\n @media print {\n .e-surface {\n box-shadow: none;\n border: 1px solid #000;\n break-inside: avoid;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;EAKA,IAAMc,IAAQC,GAqBRC,IAAOC,QAAgBH,EAAM,QAAQA,EAAM,SAAS,YAAY,cAAcA,EAAM,SAAS,IAAK,GAClGI,IAAMD,QAAgBH,EAAM,MAAM,kBAAkBA,EAAM,QAAQ,IAAK,GACvEK,IAAaF,QAAgB,4BAA4B,KAAKH,EAAM,EAAE,IAAI,WAAW,KAAM;E,kBAI/Fb,EAAA,GAAAC,EAcYC,EAbLY,EAAA,EAAE,GAAA,EACP,OAAKX,EAAA,CAAC,aAAW,CACRY,EAAA,OAAMhB,EAAAA,OAAO,UAAO,uBAAA,CAA2BkB,EAAA,OAAKH,EAAA,QAAI,iBAAA,CAAA,CAAA,CAAA,E;GAEjE,SAAAV,QAOW,CAPKL,EAAAA,OAAO,WAAvBC,EAAA,GAAAK,EAOWC,GAAA,EAAA,KAAA,EAAA,GAAA,CANTC,EAEM,OAAA,EAFD,OAAKJ,EAAA,CAAC,kBAAyBc,EAAA,KAAG,CAAA,E,IACrCT,EAAQe,EAAA,QAAA,SAAA,C,OAEVd,EAEWC,GAAA;IAFA,IAAIQ,EAAA;IAAY,KAAA;;IACzB,SAAAd,QAAuB,CAAvBI,EAAuBe,EAAA,QAAA,SAAA,C;;G,uBAG3Bf,EAAee,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,C"}
1
+ {"version":3,"file":"ESurface.vue_vue_type_script_setup_true_lang.js","names":["$slots","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementBlock","_Fragment","_createElementVNode","_renderSlot","_createVNode","EActions","EActions_default","ESurface_vue_vue_type_script_setup_true_lang_default","props","__props","pad","computed","barElement","openBlock","createBlock","resolveDynamicComponent","normalizeClass","_ctx","withCtx","createElementBlock","Fragment","createElementVNode","renderSlot","createVNode"],"sources":["../../../src/components/Surface/ESurface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EActions from \"../Actions/EActions.vue\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The element to render, `div` by default. Use `article`, `section` or `aside` for a real block. */\n as?: string;\n /** Padding: `sm`, `md` or `lg`. None by default. */\n pad?: \"sm\" | \"md\" | \"lg\";\n /** The lifted shadow of something floating above the page, such as a Toast. */\n raised?: boolean;\n /** Hides what overflows the rounded corners. Ignored when there is an `actions` slot. */\n clip?: boolean;\n }>(),\n { as: \"div\" },\n);\n\ndefineSlots<{\n /** The content of the card. */\n default(): unknown;\n /** Buttons for a bar at the foot of the card, edge to edge. The body takes the remaining height so cards in a row end level. */\n actions(): unknown;\n}>();\n\nconst pad = computed(() => (props.pad ? `e-surface--pad-${props.pad}` : null));\nconst barElement = computed(() => (/^(article|section|aside)$/.test(props.as) ? \"footer\" : \"div\"));\n</script>\n\n<template>\n <component\n :is=\"as\"\n class=\"e-surface\"\n :class=\"[raised && 'e-surface--raised', $slots.actions ? 'e-surface--actions' : [pad, clip && 'e-surface--clip']]\"\n >\n <template v-if=\"$slots.actions\">\n <div class=\"e-surface-body\" :class=\"pad\">\n <slot />\n </div>\n <EActions :as=\"barElement\" bar>\n <slot name=\"actions\" />\n </EActions>\n </template>\n <slot v-else />\n </component>\n</template>\n\n<style>\n@layer e.blocks {\n .e-surface {\n min-width: 0;\n border-radius: var(--e-radius-md);\n background: var(--e-surface);\n box-shadow: var(--e-edge);\n outline: var(--e-stroke-card) solid var(--e-border);\n outline-offset: 0;\n }\n\n .e-surface--clip {\n overflow: hidden;\n }\n\n .e-surface--actions {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .e-surface-body {\n flex: 1;\n min-width: 0;\n }\n\n .e-surface > .e-actions--bar:last-child {\n border-end-start-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-surface--raised {\n box-shadow: var(--e-float);\n outline: var(--e-stroke-card) solid var(--e-border);\n outline-offset: 0;\n }\n\n .e-surface--pad-sm {\n padding: var(--e-space-3) var(--e-space-4);\n }\n\n .e-surface--pad-md {\n padding: var(--e-space-4);\n }\n\n .e-surface--pad-lg {\n padding: var(--e-space-6);\n }\n\n @media print {\n .e-surface {\n box-shadow: none;\n outline: 0;\n border: var(--e-stroke-hair) solid var(--e-print-ink, #000);\n break-inside: avoid;\n }\n }\n\n @media (forced-colors: active) {\n .e-surface {\n outline-color: CanvasText;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;EAKA,IAAMc,IAAQC,GAqBRC,IAAMC,QAAgBH,EAAM,MAAM,kBAAkBA,EAAM,QAAQ,IAAK,GACvEI,IAAaD,QAAgB,4BAA4B,KAAKH,EAAM,EAAE,IAAI,WAAW,KAAM;E,kBAI/Fb,EAAA,GAAAC,EAcYC,EAbLY,EAAA,EAAE,GAAA,EACP,OAAKX,EAAA,CAAC,aAAW,CACRW,EAAA,UAAM,qBAAyBf,EAAAA,OAAO,UAAO,uBAAA,CAA2BgB,EAAA,OAAKD,EAAA,QAAI,iBAAA,CAAA,CAAA,CAAA,E;GAE1F,SAAAV,QAOW,CAPKL,EAAAA,OAAO,WAAvBC,EAAA,GAAAK,EAOWC,GAAA,EAAA,KAAA,EAAA,GAAA,CANTC,EAEM,OAAA,EAFD,OAAKJ,EAAA,CAAC,kBAAyBY,EAAA,KAAG,CAAA,E,IACrCP,EAAQc,EAAA,QAAA,SAAA,C,OAEVb,EAEWC,GAAA;IAFA,IAAIO,EAAA;IAAY,KAAA;;IACzB,SAAAb,QAAuB,CAAvBI,EAAuBc,EAAA,QAAA,SAAA,C;;G,uBAG3Bd,EAAec,EAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ESwitch.js","names":["_sfc_main","ESwitch_vue_vue_type_script_setup_true_lang_default","ESwitch_default"],"sources":["../../../src/components/Switch/ESwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The setting, named by what it does. */\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n /** The name submitted with a form. */\n name?: string;\n /** The value submitted with a form when on. */\n value?: string;\n /** The id of the input; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst model = defineModel<boolean>({ default: false });\n\nconst id = useUid(() => props.id);\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\n\ndefineExpose({\n input,\n focus: () => input.value?.focus(),\n});\n</script>\n\n<template>\n <label\n class=\"e-choice e-switch\"\n :class=\"[{ 'e-choice--disabled': disabled }, attrs.wrapper().class]\"\n :style=\"attrs.wrapper().style\"\n :for=\"id\"\n >\n <input\n :id=\"id\"\n ref=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"e-switch-input\"\n :name=\"name\"\n :value=\"value\"\n :checked=\"model\"\n :disabled=\"disabled\"\n v-bind=\"attrs.input()\"\n @change=\"model = ($event.target as HTMLInputElement).checked\"\n />\n <span class=\"e-switch-track\" aria-hidden=\"true\" />\n <span class=\"e-choice-text\">\n {{ label }}\n <span v-if=\"description\" class=\"e-choice-desc\">{{ description }}</span>\n </span>\n </label>\n</template>\n\n<style>\n@layer e.controls {\n .e-switch-input {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n }\n\n .e-switch-track {\n position: relative;\n flex: none;\n width: 44px;\n height: 24px;\n border: var(--e-stroke-edge) solid var(--e-border-strong);\n border-radius: var(--e-radius-pill);\n background: var(--e-surface-tint);\n transition:\n background-color var(--e-duration-tap) var(--e-easing-out),\n border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-switch-track::after {\n content: \"\";\n position: absolute;\n top: 50%;\n inset-inline-start: 3px;\n width: 14px;\n height: 14px;\n margin-top: -7px;\n border-radius: 50%;\n background: var(--e-ink);\n transition: transform var(--e-duration-move, 160ms) var(--e-easing-out);\n }\n\n .e-switch:hover .e-switch-track {\n border-color: var(--e-ink);\n }\n\n .e-switch-input:checked + .e-switch-track {\n background: var(--e-primary);\n border-color: var(--e-primary);\n }\n\n .e-switch-input:checked + .e-switch-track::after {\n background: var(--e-on-primary);\n transform: translateX(20px);\n }\n\n .e-switch-input:disabled + .e-switch-track {\n border-style: dashed;\n background: var(--e-surface-tint);\n }\n\n .e-switch-input:disabled + .e-switch-track::after {\n background: var(--e-muted);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-switch-track::after {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-switch-input:checked + .e-switch-track {\n forced-color-adjust: none;\n background: Highlight;\n }\n\n .e-switch-track::after {\n forced-color-adjust: none;\n background: ButtonText;\n }\n }\n\n :dir(rtl) .e-switch-input:checked + .e-switch-track::after {\n transform: translateX(-20px);\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ESwitch.js","names":["_sfc_main","ESwitch_vue_vue_type_script_setup_true_lang_default","ESwitch_default"],"sources":["../../../src/components/Switch/ESwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The setting, named by what it does. */\n label: string;\n /** A line of detail under the label. */\n description?: string;\n /** Disables the switch. */\n disabled?: boolean;\n /** The name submitted with a form. */\n name?: string;\n /** The value submitted with a form when on. */\n value?: string;\n /** The id of the input; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** On or off. */\nconst model = defineModel<boolean>({ default: false });\n\nconst id = useUid(() => props.id);\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\n\ndefineExpose({\n input,\n focus: () => input.value?.focus(),\n});\n</script>\n\n<template>\n <label\n class=\"e-choice e-switch\"\n :class=\"[{ 'e-choice--disabled': disabled }, attrs.wrapper().class]\"\n :style=\"attrs.wrapper().style\"\n :for=\"id\"\n >\n <input\n :id=\"id\"\n ref=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"e-switch-input\"\n :name=\"name\"\n :value=\"value\"\n :checked=\"model\"\n :disabled=\"disabled\"\n v-bind=\"attrs.input()\"\n @change=\"model = ($event.target as HTMLInputElement).checked\"\n />\n <span class=\"e-switch-track\" aria-hidden=\"true\" />\n <span class=\"e-choice-text\">\n {{ label }}\n <span v-if=\"description\" class=\"e-choice-desc\">{{ description }}</span>\n </span>\n </label>\n</template>\n\n<style>\n@layer e.controls {\n .e-switch-input {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n }\n\n .e-switch-track {\n --e-switch-w: 44px;\n --e-thumb: 14px;\n --e-thumb-inset: calc(var(--e-space-1) - var(--e-stroke-card));\n --e-thumb-travel: calc(var(--e-switch-w) - 2 * var(--e-stroke-edge) - var(--e-thumb) - 2 * var(--e-thumb-inset));\n\n position: relative;\n flex: none;\n width: var(--e-switch-w);\n height: 24px;\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-pill);\n background: var(--e-surface-tint);\n transition:\n background-color var(--e-duration-tap) var(--e-easing-out),\n border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-switch-track::after {\n content: \"\";\n position: absolute;\n top: 50%;\n inset-inline-start: var(--e-thumb-inset);\n width: var(--e-thumb);\n height: var(--e-thumb);\n margin-top: calc(var(--e-thumb) / -2);\n border-radius: 50%;\n background: var(--e-ink);\n transition: transform var(--e-duration-move, 160ms) var(--e-easing-out);\n }\n\n .e-switch:hover .e-switch-track {\n border-color: var(--e-ink);\n\n --e-bc: var(--e-ink);\n }\n\n .e-switch-input:checked + .e-switch-track {\n background: var(--e-primary);\n border-color: var(--e-primary);\n\n --e-bc: var(--e-primary);\n }\n\n .e-switch-input:checked + .e-switch-track::after {\n background: var(--e-on-primary);\n transform: translateX(var(--e-thumb-travel));\n }\n\n .e-switch-input:disabled + .e-switch-track {\n border-style: dashed;\n outline: 0;\n background: var(--e-surface-tint);\n }\n\n .e-switch-input:disabled + .e-switch-track::after {\n background: var(--e-muted);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-switch-track::after {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-switch-input:checked + .e-switch-track {\n forced-color-adjust: none;\n background: Highlight;\n }\n\n .e-switch-track::after {\n forced-color-adjust: none;\n background: ButtonText;\n }\n }\n\n :dir(rtl) .e-switch-input:checked + .e-switch-track::after {\n transform: translateX(calc(-1 * var(--e-thumb-travel)));\n }\n}\n</style>\n"],"mappings":""}
@@ -3,15 +3,17 @@ type __VLS_Props = {
3
3
  label: string;
4
4
  /** A line of detail under the label. */
5
5
  description?: string;
6
+ /** Disables the switch. */
6
7
  disabled?: boolean;
7
8
  /** The name submitted with a form. */
8
9
  name?: string;
9
10
  /** The value submitted with a form when on. */
10
11
  value?: string;
11
- /** The id of the input; the label points at it. Generated when left out. */
12
+ /** The id of the input; the label points at it. @default generated */
12
13
  id?: string;
13
14
  };
14
15
  type __VLS_ModelProps = {
16
+ /** On or off. */
15
17
  modelValue?: boolean;
16
18
  };
17
19
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
@@ -1 +1 @@
1
- {"version":3,"file":"ESwitch.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_createElementVNode","_mergeProps","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ESwitch_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__expose","props","__props","model","useModel","id","useUid","input","ref","attrs","useFieldAttrs","openBlock","createElementBlock","normalizeClass","unref","normalizeStyle","createElementVNode","mergeProps","_cache","$event","createTextVNode","toDisplayString","createCommentVNode"],"sources":["../../../src/components/Switch/ESwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The setting, named by what it does. */\n label: string;\n /** A line of detail under the label. */\n description?: string;\n disabled?: boolean;\n /** The name submitted with a form. */\n name?: string;\n /** The value submitted with a form when on. */\n value?: string;\n /** The id of the input; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst model = defineModel<boolean>({ default: false });\n\nconst id = useUid(() => props.id);\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\n\ndefineExpose({\n input,\n focus: () => input.value?.focus(),\n});\n</script>\n\n<template>\n <label\n class=\"e-choice e-switch\"\n :class=\"[{ 'e-choice--disabled': disabled }, attrs.wrapper().class]\"\n :style=\"attrs.wrapper().style\"\n :for=\"id\"\n >\n <input\n :id=\"id\"\n ref=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"e-switch-input\"\n :name=\"name\"\n :value=\"value\"\n :checked=\"model\"\n :disabled=\"disabled\"\n v-bind=\"attrs.input()\"\n @change=\"model = ($event.target as HTMLInputElement).checked\"\n />\n <span class=\"e-switch-track\" aria-hidden=\"true\" />\n <span class=\"e-choice-text\">\n {{ label }}\n <span v-if=\"description\" class=\"e-choice-desc\">{{ description }}</span>\n </span>\n </label>\n</template>\n\n<style>\n@layer e.controls {\n .e-switch-input {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n }\n\n .e-switch-track {\n position: relative;\n flex: none;\n width: 44px;\n height: 24px;\n border: var(--e-stroke-edge) solid var(--e-border-strong);\n border-radius: var(--e-radius-pill);\n background: var(--e-surface-tint);\n transition:\n background-color var(--e-duration-tap) var(--e-easing-out),\n border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-switch-track::after {\n content: \"\";\n position: absolute;\n top: 50%;\n inset-inline-start: 3px;\n width: 14px;\n height: 14px;\n margin-top: -7px;\n border-radius: 50%;\n background: var(--e-ink);\n transition: transform var(--e-duration-move, 160ms) var(--e-easing-out);\n }\n\n .e-switch:hover .e-switch-track {\n border-color: var(--e-ink);\n }\n\n .e-switch-input:checked + .e-switch-track {\n background: var(--e-primary);\n border-color: var(--e-primary);\n }\n\n .e-switch-input:checked + .e-switch-track::after {\n background: var(--e-on-primary);\n transform: translateX(20px);\n }\n\n .e-switch-input:disabled + .e-switch-track {\n border-style: dashed;\n background: var(--e-surface-tint);\n }\n\n .e-switch-input:disabled + .e-switch-track::after {\n background: var(--e-muted);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-switch-track::after {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-switch-input:checked + .e-switch-track {\n forced-color-adjust: none;\n background: Highlight;\n }\n\n .e-switch-track::after {\n forced-color-adjust: none;\n background: ButtonText;\n }\n }\n\n :dir(rtl) .e-switch-input:checked + .e-switch-track::after {\n transform: translateX(-20px);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASA,IAAMmB,IAAQC,GAcRC,IAAQrB,EAAoBoB,GAAA,YAAmB,GAE/CG,IAAKC,QAAaL,EAAM,EAAE,GAC1BM,IAAQC,EAA6B,IAAI,GACzCC,IAAQC,EAAc;E,OAE5BV,EAAa;GACX;GACA,aAAaO,EAAM,OAAO,MAAM;EAClC,CAAC,I,UAICxB,EAAA,GAAAC,EAwBQ,SAAA;GAvBN,OAAKC,EAAA,CAAC,qBAAmB,CAAA,EAAA,sBACQiB,EAAA,SAAQ,GAAIhB,EAAAuB,CAAA,CAAK,CAAC,QAAO,CAAA,CAAG,KAAK,CAAA,CAAA;GACjE,OAAKtB,EAAED,EAAAuB,CAAA,CAAK,CAAC,QAAO,CAAA,CAAG,KAAK;GAC5B,KAAKvB,EAAAmB,CAAA;;GAENjB,EAYE,SAZFC,EAYE;IAXC,IAAIH,EAAAmB,CAAA;IACD,SAAA;IAAJ,KAAIE;IACJ,MAAK;IACL,MAAK;IACL,OAAM;IACL,MAAML,EAAA;IACN,OAAOA,EAAA;IACP,SAASC,EAAA;IACT,UAAUD,EAAA;GACH,GAAAhB,EAAAuB,CAAA,CAAK,CAAC,MAAK,GAAA,EAClB,UAAM,AAAAS,EAAA,QAAA,MAAE,EAAA,QAASC,EAAO,OAA4B,Q;GAEvD,AAAAD,EAAA,OAAA9B,EAAkD,QAAA;IAA5C,OAAM;IAAiB,eAAY;;GACzCA,EAGO,QAHPO,GAGO,CAFFL,EAAAC,EAAAW,EAAA,KAAK,IAAG,KACX,CAAA,GAAYA,EAAA,eAAZnB,EAAA,GAAAC,EAAuE,QAAvEY,GAAuEL,EAArBW,EAAA,WAAW,GAAA,CAAA,K"}
1
+ {"version":3,"file":"ESwitch.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_createElementVNode","_mergeProps","_createTextVNode","_toDisplayString","_createCommentVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","ESwitch_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","__expose","props","__props","model","useModel","id","useUid","input","ref","attrs","useFieldAttrs","openBlock","createElementBlock","normalizeClass","unref","normalizeStyle","createElementVNode","mergeProps","_cache","$event","createTextVNode","toDisplayString","createCommentVNode"],"sources":["../../../src/components/Switch/ESwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport { useUid } from \"../../composables/useUid.js\";\nimport \"../../styles/base.css\";\nimport \"../Checkbox/choice.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The setting, named by what it does. */\n label: string;\n /** A line of detail under the label. */\n description?: string;\n /** Disables the switch. */\n disabled?: boolean;\n /** The name submitted with a form. */\n name?: string;\n /** The value submitted with a form when on. */\n value?: string;\n /** The id of the input; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** On or off. */\nconst model = defineModel<boolean>({ default: false });\n\nconst id = useUid(() => props.id);\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\n\ndefineExpose({\n input,\n focus: () => input.value?.focus(),\n});\n</script>\n\n<template>\n <label\n class=\"e-choice e-switch\"\n :class=\"[{ 'e-choice--disabled': disabled }, attrs.wrapper().class]\"\n :style=\"attrs.wrapper().style\"\n :for=\"id\"\n >\n <input\n :id=\"id\"\n ref=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"e-switch-input\"\n :name=\"name\"\n :value=\"value\"\n :checked=\"model\"\n :disabled=\"disabled\"\n v-bind=\"attrs.input()\"\n @change=\"model = ($event.target as HTMLInputElement).checked\"\n />\n <span class=\"e-switch-track\" aria-hidden=\"true\" />\n <span class=\"e-choice-text\">\n {{ label }}\n <span v-if=\"description\" class=\"e-choice-desc\">{{ description }}</span>\n </span>\n </label>\n</template>\n\n<style>\n@layer e.controls {\n .e-switch-input {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n }\n\n .e-switch-track {\n --e-switch-w: 44px;\n --e-thumb: 14px;\n --e-thumb-inset: calc(var(--e-space-1) - var(--e-stroke-card));\n --e-thumb-travel: calc(var(--e-switch-w) - 2 * var(--e-stroke-edge) - var(--e-thumb) - 2 * var(--e-thumb-inset));\n\n position: relative;\n flex: none;\n width: var(--e-switch-w);\n height: 24px;\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-pill);\n background: var(--e-surface-tint);\n transition:\n background-color var(--e-duration-tap) var(--e-easing-out),\n border-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-switch-track::after {\n content: \"\";\n position: absolute;\n top: 50%;\n inset-inline-start: var(--e-thumb-inset);\n width: var(--e-thumb);\n height: var(--e-thumb);\n margin-top: calc(var(--e-thumb) / -2);\n border-radius: 50%;\n background: var(--e-ink);\n transition: transform var(--e-duration-move, 160ms) var(--e-easing-out);\n }\n\n .e-switch:hover .e-switch-track {\n border-color: var(--e-ink);\n\n --e-bc: var(--e-ink);\n }\n\n .e-switch-input:checked + .e-switch-track {\n background: var(--e-primary);\n border-color: var(--e-primary);\n\n --e-bc: var(--e-primary);\n }\n\n .e-switch-input:checked + .e-switch-track::after {\n background: var(--e-on-primary);\n transform: translateX(var(--e-thumb-travel));\n }\n\n .e-switch-input:disabled + .e-switch-track {\n border-style: dashed;\n outline: 0;\n background: var(--e-surface-tint);\n }\n\n .e-switch-input:disabled + .e-switch-track::after {\n background: var(--e-muted);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-switch-track::after {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-switch-input:checked + .e-switch-track {\n forced-color-adjust: none;\n background: Highlight;\n }\n\n .e-switch-track::after {\n forced-color-adjust: none;\n background: ButtonText;\n }\n }\n\n :dir(rtl) .e-switch-input:checked + .e-switch-track::after {\n transform: translateX(calc(-1 * var(--e-thumb-travel)));\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASA,IAAMmB,IAAQC,GAgBRC,IAAQrB,EAAoBoB,GAAA,YAAmB,GAE/CG,IAAKC,QAAaL,EAAM,EAAE,GAC1BM,IAAQC,EAA6B,IAAI,GACzCC,IAAQC,EAAc;E,OAE5BV,EAAa;GACX;GACA,aAAaO,EAAM,OAAO,MAAM;EAClC,CAAC,I,UAICxB,EAAA,GAAAC,EAwBQ,SAAA;GAvBN,OAAKC,EAAA,CAAC,qBAAmB,CAAA,EAAA,sBACQiB,EAAA,SAAQ,GAAIhB,EAAAuB,CAAA,CAAK,CAAC,QAAO,CAAA,CAAG,KAAK,CAAA,CAAA;GACjE,OAAKtB,EAAED,EAAAuB,CAAA,CAAK,CAAC,QAAO,CAAA,CAAG,KAAK;GAC5B,KAAKvB,EAAAmB,CAAA;;GAENjB,EAYE,SAZFC,EAYE;IAXC,IAAIH,EAAAmB,CAAA;IACD,SAAA;IAAJ,KAAIE;IACJ,MAAK;IACL,MAAK;IACL,OAAM;IACL,MAAML,EAAA;IACN,OAAOA,EAAA;IACP,SAASC,EAAA;IACT,UAAUD,EAAA;GACH,GAAAhB,EAAAuB,CAAA,CAAK,CAAC,MAAK,GAAA,EAClB,UAAM,AAAAS,EAAA,QAAA,MAAE,EAAA,QAASC,EAAO,OAA4B,Q;GAEvD,AAAAD,EAAA,OAAA9B,EAAkD,QAAA;IAA5C,OAAM;IAAiB,eAAY;;GACzCA,EAGO,QAHPO,GAGO,CAFFL,EAAAC,EAAAW,EAAA,KAAK,IAAG,KACX,CAAA,GAAYA,EAAA,eAAZnB,EAAA,GAAAC,EAAuE,QAAvEY,GAAuEL,EAArBW,EAAA,WAAW,GAAA,CAAA,K"}
@@ -1 +1 @@
1
- {"version":3,"file":"ETabs.js","names":["_sfc_main","ETabs_vue_vue_type_script_setup_true_lang_default","ETabs_default"],"sources":["../../../src/components/Tabs/ETabs.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { LinkItem, LinkSection } from \"./LinkNav.vue\";\n\nexport interface TabItem extends LinkItem {\n /** Names the tab's slot, and is the value of `v-model`. Not needed for a link. */\n id?: string;\n /** A number or short word in a small badge after the label. */\n count?: number | string;\n}\n\nexport type TabSection = LinkSection<TabItem>;\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch, type Component } from \"vue\";\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from \"reka-ui\";\nimport LinkNav from \"./LinkNav.vue\";\nimport { useConfig } from \"../../config.js\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The tabs, in order. Two to five for panels; give them `href` or `to` to make a row or column of links. */\n items?: TabItem[];\n /** Links in labelled groups, instead of `items`. */\n sections?: TabSection[];\n /** `vertical` stacks the links with a rule down the start edge, for a sidebar or an outline. Links only. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Shorter rows and smaller words, for a long list of links. */\n dense?: boolean;\n /** The landmark's name when the tabs are links. Defaults to \"Main\". */\n label?: string;\n /** What renders each link: `\"a\"` by default, or `RouterLink`. */\n linkComponent?: string | Component;\n }>(),\n { orientation: \"horizontal\", linkComponent: \"a\" },\n);\n\ndefineSlots<{\n [id: string]: ((props: { item: TabItem }) => unknown) | undefined;\n /** The panel of any tab that has no slot of its own. */\n panel?(props: { item: TabItem }): unknown;\n}>();\n\nconst groups = computed<TabSection[]>(() => props.sections ?? [{ items: props.items ?? [] }]);\nconst flat = computed(() => groups.value.flatMap((g) => g.items));\nconst isNav = computed(() => flat.value.some((i) => i.href !== undefined || i.to !== undefined));\n\nconst model = defineModel<string>();\n\nconst config = useConfig();\nconst current = computed(() => model.value ?? flat.value[0]?.id);\nconst dir = computed<\"ltr\" | \"rtl\">(\n () => config.dir ?? (typeof document !== \"undefined\" && document.documentElement.dir === \"rtl\" ? \"rtl\" : \"ltr\"),\n);\n\nconst list = ref<{ $el: HTMLElement } | null>(null);\n\nasync function reveal(smooth: boolean) {\n await nextTick();\n const el = list.value?.$el;\n const tab = el?.querySelector<HTMLElement>('[aria-selected=\"true\"]');\n if (!el || !tab || el.scrollWidth <= el.clientWidth) return;\n const calm = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const a = tab.getBoundingClientRect();\n const b = el.getBoundingClientRect();\n el.scrollBy({ left: a.left + a.width / 2 - (b.left + b.width / 2), behavior: smooth && !calm ? \"smooth\" : \"auto\" });\n}\n\nonMounted(() => reveal(false));\nwatch(current, () => reveal(true));\n</script>\n\n<template>\n <LinkNav\n v-if=\"isNav\"\n class=\"e-tabs e-tabs--links\"\n :class=\"[orientation === 'vertical' && 'e-tabs--vertical', dense && 'e-tabs--dense']\"\n :groups=\"groups\"\n :label=\"label\"\n :link-component=\"linkComponent\"\n item-class=\"e-tab\"\n heading-class=\"e-tabs-heading\"\n list-class=\"e-tablist\"\n >\n <template #item=\"{ item }\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </template>\n </LinkNav>\n <TabsRoot v-else class=\"e-tabs\" :model-value=\"current\" :dir=\"dir\" @update:model-value=\"model = String($event)\">\n <TabsList ref=\"list\" class=\"e-tablist\">\n <TabsTrigger v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id!\" class=\"e-tab\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </TabsTrigger>\n </TabsList>\n <TabsContent v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id!\" class=\"e-tabpanel\">\n <slot :name=\"item.id!\" :item=\"item\"><slot name=\"panel\" :item=\"item\" /></slot>\n </TabsContent>\n </TabsRoot>\n</template>\n\n<style>\n@layer e.containers {\n .e-tablist {\n display: flex;\n gap: var(--e-space-1);\n /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties -- the two axes are set apart */\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n border-bottom: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-tablist::-webkit-scrollbar {\n display: none;\n }\n\n .e-tab + .e-tab::before,\n .e-tablist > li + li > .e-tab::before {\n content: \"\";\n position: absolute;\n inset-block: 30%;\n inset-inline-start: calc(var(--e-space-1) * -0.5);\n border-inline-start: var(--e-stroke-hair) solid color-mix(in srgb, var(--e-border) 40%, transparent);\n }\n\n .e-tablist:has(> li) {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .e-tablist > li {\n display: contents;\n }\n\n a.e-tab {\n text-decoration: none;\n }\n\n .e-tabs--dense .e-tab {\n height: 2.25rem;\n font-size: var(--e-text-sm);\n }\n\n .e-tabs--vertical .e-tablist {\n flex-direction: column;\n gap: 0;\n overflow: visible;\n border-bottom: 0;\n border-inline-start: var(--e-stroke-edge) solid var(--e-border);\n }\n\n .e-tabs--vertical .e-tab {\n background-clip: padding-box;\n justify-content: flex-start;\n height: auto;\n min-height: 2rem;\n margin-inline-start: calc(-1 * var(--e-stroke-edge));\n padding-block: var(--e-space-1);\n border-bottom: 0;\n border-inline-start: 3px solid transparent;\n line-height: 1.35;\n text-align: start;\n }\n\n .e-tabs--vertical .e-tablist > li > .e-tab::before {\n content: none;\n }\n\n .e-tabs--vertical.e-tabs--dense .e-tab {\n min-height: 2.25rem;\n }\n\n .e-tabs--vertical .e-tab[aria-current=\"page\"] {\n border-inline-start-color: var(--e-primary);\n background: var(--e-surface-tint);\n }\n\n .e-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--e-space-2);\n flex: none;\n height: var(--e-control-height);\n padding: 0 var(--e-space-4);\n border: 0;\n border-bottom: 3px solid transparent;\n background: transparent;\n color: var(--e-muted);\n font: 500 var(--e-text-md) / 1 var(--e-font-sans);\n cursor: pointer;\n transition:\n color var(--e-duration-tap) var(--e-easing-out),\n background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-tab:hover {\n color: var(--e-ink);\n background: var(--e-surface-tint);\n }\n\n .e-tab[aria-selected=\"true\"],\n .e-tab[aria-current=\"page\"] {\n color: var(--e-ink);\n border-bottom-color: var(--e-primary);\n font-weight: 600;\n }\n\n .e-tab:focus-visible {\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: calc(-1 * var(--e-stroke-focus));\n border-radius: var(--e-radius-sm);\n }\n\n .e-tab-count {\n min-width: 22px;\n padding: 0 6px;\n border-radius: var(--e-radius-pill);\n background: var(--e-surface-tint);\n box-shadow: inset 0 0 0 1px var(--e-border-strong);\n font: 600 var(--e-text-xs) / 20px var(--e-font-mono);\n text-align: center;\n color: var(--e-ink);\n }\n\n .e-tabpanel {\n padding-top: var(--e-space-4);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-tab {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-tab[aria-selected=\"true\"],\n .e-tab[aria-current=\"page\"] {\n forced-color-adjust: none;\n background: Highlight;\n color: HighlightText;\n }\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ETabs.js","names":["_sfc_main","ETabs_vue_vue_type_script_setup_true_lang_default","ETabs_default"],"sources":["../../../src/components/Tabs/ETabs.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TabItem {\n /** Names the tab's slot, and is the value of `v-model`. */\n id: string;\n /** The tab's words. */\n label: string;\n /** A number or short word in a small badge after the label. */\n count?: number | string;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch } from \"vue\";\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from \"reka-ui\";\nimport { useConfig } from \"../../config.js\";\nimport \"../../styles/base.css\";\n\nconst props = defineProps<{\n /** The tabs, in order: `{ id, label, count? }`. Two to five, with short labels. `id` names the slot and is the `v-model` value. */\n items?: TabItem[];\n}>();\n\ndefineSlots<{\n [id: string]: ((props: { item: TabItem }) => unknown) | undefined;\n /** The panel of any tab that has no slot of its own. */\n panel?(props: { item: TabItem }): unknown;\n}>();\n\nconst flat = computed(() => props.items ?? []);\n\n/** The `id` of the selected tab. Keeps its own state when unbound. @default first tab */\nconst model = defineModel<string>();\n\nconst config = useConfig();\nconst current = computed(() => model.value ?? flat.value[0]?.id);\nconst dir = computed<\"ltr\" | \"rtl\">(\n () => config.dir ?? (typeof document !== \"undefined\" && document.documentElement.dir === \"rtl\" ? \"rtl\" : \"ltr\"),\n);\n\nconst list = ref<{ $el: HTMLElement } | null>(null);\n\nasync function reveal(smooth: boolean) {\n await nextTick();\n const el = list.value?.$el;\n const tab = el?.querySelector<HTMLElement>('[aria-selected=\"true\"]');\n if (!el || !tab || el.scrollWidth <= el.clientWidth) return;\n const calm = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const a = tab.getBoundingClientRect();\n const b = el.getBoundingClientRect();\n el.scrollBy({ left: a.left + a.width / 2 - (b.left + b.width / 2), behavior: smooth && !calm ? \"smooth\" : \"auto\" });\n}\n\nonMounted(() => reveal(false));\nwatch(current, () => reveal(true));\n</script>\n\n<template>\n <TabsRoot class=\"e-tabs\" :model-value=\"current\" :dir=\"dir\" @update:model-value=\"model = String($event)\">\n <TabsList ref=\"list\" class=\"e-tablist\">\n <TabsTrigger v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id\" class=\"e-tab\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </TabsTrigger>\n </TabsList>\n <TabsContent v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id\" class=\"e-tabpanel\">\n <slot :name=\"item.id\" :item=\"item\"><slot name=\"panel\" :item=\"item\" /></slot>\n </TabsContent>\n </TabsRoot>\n</template>\n\n<style>\n@layer e.containers {\n .e-tablist {\n display: flex;\n gap: 0;\n /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties -- the two axes are set apart */\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n }\n\n .e-tablist::-webkit-scrollbar {\n display: none;\n }\n\n /* Tabs are button-like: every tab is ringed and neighbours sit flush and share an edge, so only the outer ends of the row are rounded. The selected tab is outlined in the primary colour with a thick slab underneath. */\n .e-tab {\n --e-bc: var(--e-border-strong);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--e-space-2);\n flex: none;\n height: var(--e-control-height);\n padding: 0 var(--e-space-4);\n border: var(--e-stroke-edge) solid var(--e-bc);\n border-radius: 0;\n outline: var(--e-stroke-edge) solid var(--e-bc);\n outline-offset: calc(-1 * var(--e-stroke-edge));\n background: transparent;\n color: var(--e-muted);\n font: 500 var(--e-text-md) / 1 var(--e-font-sans);\n cursor: pointer;\n transition:\n color var(--e-duration-tap) var(--e-easing-out),\n background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n /* Only the outer ends of the row are rounded. */\n .e-tab:first-child {\n border-start-start-radius: var(--e-radius-md);\n border-end-start-radius: var(--e-radius-md);\n }\n\n .e-tab:last-child {\n border-start-end-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-tab + .e-tab {\n margin-inline-start: calc(-1 * var(--e-stroke-edge));\n }\n\n .e-tab:hover {\n --e-bc: var(--e-ink);\n\n z-index: var(--e-z-raised);\n color: var(--e-ink);\n background-color: var(--e-surface-hover);\n }\n\n .e-tab[aria-selected=\"true\"] {\n --e-bc: var(--e-primary);\n\n z-index: var(--e-z-sticky);\n border-bottom-width: calc(var(--e-stroke-edge) + var(--e-depth));\n background-color: color-mix(in srgb, var(--e-surface-tint), var(--e-ink) 3%);\n color: var(--e-ink);\n font-weight: 600;\n }\n\n .e-tab:focus-visible {\n z-index: var(--e-z-focus);\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: var(--e-focus-gap);\n }\n\n .e-tab-count {\n min-width: var(--e-space-6);\n padding: 0 var(--e-space-2);\n border-radius: var(--e-radius-pill);\n background: color-mix(in srgb, var(--e-primary) 12%, var(--e-surface));\n box-shadow: inset 0 0 0 var(--e-stroke-hair) var(--e-primary);\n outline: var(--e-stroke-hair) solid var(--e-primary);\n outline-offset: calc(-1 * var(--e-stroke-hair));\n font: 600 var(--e-text-xs) / 20px var(--e-font-mono);\n text-align: center;\n color: var(--e-ink);\n }\n\n .e-tabpanel {\n padding-top: var(--e-space-4);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-tab {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-tab[aria-selected=\"true\"] {\n forced-color-adjust: none;\n background: Highlight;\n color: HighlightText;\n }\n }\n}\n</style>\n"],"mappings":""}
@@ -1,52 +1,30 @@
1
- import { Component } from 'vue';
2
- import { LinkItem, LinkSection } from './LinkNav.vue.js';
3
- export interface TabItem extends LinkItem {
4
- /** Names the tab's slot, and is the value of `v-model`. Not needed for a link. */
5
- id?: string;
1
+ export interface TabItem {
2
+ /** Names the tab's slot, and is the value of `v-model`. */
3
+ id: string;
4
+ /** The tab's words. */
5
+ label: string;
6
6
  /** A number or short word in a small badge after the label. */
7
7
  count?: number | string;
8
8
  }
9
- export type TabSection = LinkSection<TabItem>;
10
9
  declare const _default: typeof __VLS_export;
11
10
  export default _default;
12
11
  declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
13
- /** The tabs, in order. Two to five for panels; give them `href` or `to` to make a row or column of links. */
12
+ /** The tabs, in order: `{ id, label, count? }`. Two to five, with short labels. `id` names the slot and is the `v-model` value. */
14
13
  items?: TabItem[];
15
- /** Links in labelled groups, instead of `items`. */
16
- sections?: TabSection[];
17
- /** `vertical` stacks the links with a rule down the start edge, for a sidebar or an outline. Links only. */
18
- orientation?: "horizontal" | "vertical";
19
- /** Shorter rows and smaller words, for a long list of links. */
20
- dense?: boolean;
21
- /** The landmark's name when the tabs are links. Defaults to "Main". */
22
- label?: string;
23
- /** What renders each link: `"a"` by default, or `RouterLink`. */
24
- linkComponent?: string | Component;
25
14
  } & {
15
+ /** The `id` of the selected tab. Keeps its own state when unbound. @default first tab */
26
16
  modelValue?: string;
27
17
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
28
18
  "update:modelValue": (value: string | undefined) => any;
29
19
  }, string, import('vue').PublicProps, Readonly<{
30
- /** The tabs, in order. Two to five for panels; give them `href` or `to` to make a row or column of links. */
20
+ /** The tabs, in order: `{ id, label, count? }`. Two to five, with short labels. `id` names the slot and is the `v-model` value. */
31
21
  items?: TabItem[];
32
- /** Links in labelled groups, instead of `items`. */
33
- sections?: TabSection[];
34
- /** `vertical` stacks the links with a rule down the start edge, for a sidebar or an outline. Links only. */
35
- orientation?: "horizontal" | "vertical";
36
- /** Shorter rows and smaller words, for a long list of links. */
37
- dense?: boolean;
38
- /** The landmark's name when the tabs are links. Defaults to "Main". */
39
- label?: string;
40
- /** What renders each link: `"a"` by default, or `RouterLink`. */
41
- linkComponent?: string | Component;
42
22
  } & {
23
+ /** The `id` of the selected tab. Keeps its own state when unbound. @default first tab */
43
24
  modelValue?: string;
44
25
  }> & Readonly<{
45
26
  "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
46
- }>, {
47
- orientation: "vertical" | "horizontal";
48
- linkComponent: string | Component;
49
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
27
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
50
28
  [id: string]: ((props: {
51
29
  item: TabItem;
52
30
  }) => unknown) | undefined;
@@ -1,34 +1,23 @@
1
1
  /* empty css */
2
2
  import { useConfig as e } from "../../config.js";
3
- import t from "./LinkNav.js";
4
- import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createTextVNode as s, createVNode as c, defineComponent as l, mergeModels as u, nextTick as d, normalizeClass as f, onMounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, toDisplayString as v, unref as y, useModel as b, watch as x, withCtx as S } from "vue";
5
- import { TabsContent as C, TabsList as w, TabsRoot as T, TabsTrigger as E } from "reka-ui";
3
+ import { Fragment as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createTextVNode as o, createVNode as s, defineComponent as c, mergeModels as l, nextTick as u, onMounted as d, openBlock as f, ref as p, renderList as m, renderSlot as h, toDisplayString as g, unref as _, useModel as v, watch as y, withCtx as b } from "vue";
4
+ import { TabsContent as x, TabsList as S, TabsRoot as C, TabsTrigger as w } from "reka-ui";
6
5
  //#region src/components/Tabs/ETabs.vue?vue&type=script&setup=true&lang.ts
7
- var D = {
6
+ var T = {
8
7
  key: 0,
9
8
  class: "e-tab-count"
10
- }, O = {
11
- key: 0,
12
- class: "e-tab-count"
13
- }, k = /*@__PURE__*/ l({
9
+ }, E = /*@__PURE__*/ c({
14
10
  __name: "ETabs",
15
- props: /*@__PURE__*/ u({
16
- items: {},
17
- sections: {},
18
- orientation: { default: "horizontal" },
19
- dense: { type: Boolean },
20
- label: {},
21
- linkComponent: { default: "a" }
22
- }, {
11
+ props: /*@__PURE__*/ l({ items: {} }, {
23
12
  modelValue: {},
24
13
  modelModifiers: {}
25
14
  }),
26
15
  emits: ["update:modelValue"],
27
- setup(l) {
28
- let u = l, k = r(() => u.sections ?? [{ items: u.items ?? [] }]), A = r(() => k.value.flatMap((e) => e.items)), j = r(() => A.value.some((e) => e.href !== void 0 || e.to !== void 0)), M = b(l, "modelValue"), N = e(), P = r(() => M.value ?? A.value[0]?.id), F = r(() => N.dir ?? (typeof document < "u" && document.documentElement.dir === "rtl" ? "rtl" : "ltr")), I = h(null);
29
- async function L(e) {
30
- await d();
31
- let t = I.value?.$el, n = t?.querySelector("[aria-selected=\"true\"]");
16
+ setup(c) {
17
+ let l = c, E = n(() => l.items ?? []), D = v(c, "modelValue"), O = e(), k = n(() => D.value ?? E.value[0]?.id), A = n(() => O.dir ?? (typeof document < "u" && document.documentElement.dir === "rtl" ? "rtl" : "ltr")), j = p(null);
18
+ async function M(e) {
19
+ await u();
20
+ let t = j.value?.$el, n = t?.querySelector("[aria-selected=\"true\"]");
32
21
  if (!t || !n || t.scrollWidth <= t.clientWidth) return;
33
22
  let r = typeof matchMedia < "u" && matchMedia("(prefers-reduced-motion: reduce)").matches, i = n.getBoundingClientRect(), a = t.getBoundingClientRect();
34
23
  t.scrollBy({
@@ -36,50 +25,32 @@ var D = {
36
25
  behavior: e && !r ? "smooth" : "auto"
37
26
  });
38
27
  }
39
- return p(() => L(!1)), x(P, () => L(!0)), (e, r) => j.value ? (m(), i(t, {
40
- key: 0,
41
- class: f(["e-tabs e-tabs--links", [l.orientation === "vertical" && "e-tabs--vertical", l.dense && "e-tabs--dense"]]),
42
- groups: k.value,
43
- label: l.label,
44
- "link-component": l.linkComponent,
45
- "item-class": "e-tab",
46
- "heading-class": "e-tabs-heading",
47
- "list-class": "e-tablist"
48
- }, {
49
- item: S(({ item: e }) => [s(v(e.label) + " ", 1), e.count == null ? a("", !0) : (m(), o("span", D, v(e.count), 1))]),
50
- _: 1
51
- }, 8, [
52
- "class",
53
- "groups",
54
- "label",
55
- "link-component"
56
- ])) : (m(), i(y(T), {
57
- key: 1,
28
+ return d(() => M(!1)), y(k, () => M(!0)), (e, n) => (f(), r(_(C), {
58
29
  class: "e-tabs",
59
- "model-value": P.value,
60
- dir: F.value,
61
- "onUpdate:modelValue": r[0] ||= (e) => M.value = String(e)
30
+ "model-value": k.value,
31
+ dir: A.value,
32
+ "onUpdate:modelValue": n[0] ||= (e) => D.value = String(e)
62
33
  }, {
63
- default: S(() => [c(y(w), {
34
+ default: b(() => [s(_(S), {
64
35
  ref_key: "list",
65
- ref: I,
36
+ ref: j,
66
37
  class: "e-tablist"
67
38
  }, {
68
- default: S(() => [(m(!0), o(n, null, g(A.value, (e) => (m(), i(y(E), {
39
+ default: b(() => [(f(!0), a(t, null, m(E.value, (e) => (f(), r(_(w), {
69
40
  key: e.id,
70
41
  value: e.id,
71
42
  class: "e-tab"
72
43
  }, {
73
- default: S(() => [s(v(e.label) + " ", 1), e.count == null ? a("", !0) : (m(), o("span", O, v(e.count), 1))]),
44
+ default: b(() => [o(g(e.label) + " ", 1), e.count == null ? i("", !0) : (f(), a("span", T, g(e.count), 1))]),
74
45
  _: 2
75
46
  }, 1032, ["value"]))), 128))]),
76
47
  _: 1
77
- }, 512), (m(!0), o(n, null, g(A.value, (t) => (m(), i(y(C), {
48
+ }, 512), (f(!0), a(t, null, m(E.value, (t) => (f(), r(_(x), {
78
49
  key: t.id,
79
50
  value: t.id,
80
51
  class: "e-tabpanel"
81
52
  }, {
82
- default: S(() => [_(e.$slots, t.id, { item: t }, () => [_(e.$slots, "panel", { item: t })])]),
53
+ default: b(() => [h(e.$slots, t.id, { item: t }, () => [h(e.$slots, "panel", { item: t })])]),
83
54
  _: 2
84
55
  }, 1032, ["value"]))), 128))]),
85
56
  _: 3
@@ -87,6 +58,6 @@ var D = {
87
58
  }
88
59
  });
89
60
  //#endregion
90
- export { k as default };
61
+ export { E as default };
91
62
 
92
63
  //# sourceMappingURL=ETabs.vue_vue_type_script_setup_true_lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ETabs.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","LinkNav","_normalizeClass","_withCtx","_createTextVNode","_toDisplayString","_createElementBlock","_createCommentVNode","_unref","_createVNode","_Fragment","_renderList","_renderSlot","LinkNav_default","_hoisted_1","_hoisted_2","ETabs_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","groups","computed","flat","g","isNav","i","model","useModel","config","useConfig","current","dir","list","ref","reveal","nextTick","el","tab","calm","a","b","smooth","onMounted","watch","openBlock","createBlock","normalizeClass","withCtx","createTextVNode","toDisplayString","item","createCommentVNode","createElementBlock","unref","TabsRoot","_cache","$event","createVNode","TabsList","Fragment","renderList","TabsTrigger","TabsContent","renderSlot","_ctx"],"sources":["../../../src/components/Tabs/ETabs.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { LinkItem, LinkSection } from \"./LinkNav.vue\";\n\nexport interface TabItem extends LinkItem {\n /** Names the tab's slot, and is the value of `v-model`. Not needed for a link. */\n id?: string;\n /** A number or short word in a small badge after the label. */\n count?: number | string;\n}\n\nexport type TabSection = LinkSection<TabItem>;\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch, type Component } from \"vue\";\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from \"reka-ui\";\nimport LinkNav from \"./LinkNav.vue\";\nimport { useConfig } from \"../../config.js\";\nimport \"../../styles/base.css\";\n\nconst props = withDefaults(\n defineProps<{\n /** The tabs, in order. Two to five for panels; give them `href` or `to` to make a row or column of links. */\n items?: TabItem[];\n /** Links in labelled groups, instead of `items`. */\n sections?: TabSection[];\n /** `vertical` stacks the links with a rule down the start edge, for a sidebar or an outline. Links only. */\n orientation?: \"horizontal\" | \"vertical\";\n /** Shorter rows and smaller words, for a long list of links. */\n dense?: boolean;\n /** The landmark's name when the tabs are links. Defaults to \"Main\". */\n label?: string;\n /** What renders each link: `\"a\"` by default, or `RouterLink`. */\n linkComponent?: string | Component;\n }>(),\n { orientation: \"horizontal\", linkComponent: \"a\" },\n);\n\ndefineSlots<{\n [id: string]: ((props: { item: TabItem }) => unknown) | undefined;\n /** The panel of any tab that has no slot of its own. */\n panel?(props: { item: TabItem }): unknown;\n}>();\n\nconst groups = computed<TabSection[]>(() => props.sections ?? [{ items: props.items ?? [] }]);\nconst flat = computed(() => groups.value.flatMap((g) => g.items));\nconst isNav = computed(() => flat.value.some((i) => i.href !== undefined || i.to !== undefined));\n\nconst model = defineModel<string>();\n\nconst config = useConfig();\nconst current = computed(() => model.value ?? flat.value[0]?.id);\nconst dir = computed<\"ltr\" | \"rtl\">(\n () => config.dir ?? (typeof document !== \"undefined\" && document.documentElement.dir === \"rtl\" ? \"rtl\" : \"ltr\"),\n);\n\nconst list = ref<{ $el: HTMLElement } | null>(null);\n\nasync function reveal(smooth: boolean) {\n await nextTick();\n const el = list.value?.$el;\n const tab = el?.querySelector<HTMLElement>('[aria-selected=\"true\"]');\n if (!el || !tab || el.scrollWidth <= el.clientWidth) return;\n const calm = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const a = tab.getBoundingClientRect();\n const b = el.getBoundingClientRect();\n el.scrollBy({ left: a.left + a.width / 2 - (b.left + b.width / 2), behavior: smooth && !calm ? \"smooth\" : \"auto\" });\n}\n\nonMounted(() => reveal(false));\nwatch(current, () => reveal(true));\n</script>\n\n<template>\n <LinkNav\n v-if=\"isNav\"\n class=\"e-tabs e-tabs--links\"\n :class=\"[orientation === 'vertical' && 'e-tabs--vertical', dense && 'e-tabs--dense']\"\n :groups=\"groups\"\n :label=\"label\"\n :link-component=\"linkComponent\"\n item-class=\"e-tab\"\n heading-class=\"e-tabs-heading\"\n list-class=\"e-tablist\"\n >\n <template #item=\"{ item }\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </template>\n </LinkNav>\n <TabsRoot v-else class=\"e-tabs\" :model-value=\"current\" :dir=\"dir\" @update:model-value=\"model = String($event)\">\n <TabsList ref=\"list\" class=\"e-tablist\">\n <TabsTrigger v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id!\" class=\"e-tab\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </TabsTrigger>\n </TabsList>\n <TabsContent v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id!\" class=\"e-tabpanel\">\n <slot :name=\"item.id!\" :item=\"item\"><slot name=\"panel\" :item=\"item\" /></slot>\n </TabsContent>\n </TabsRoot>\n</template>\n\n<style>\n@layer e.containers {\n .e-tablist {\n display: flex;\n gap: var(--e-space-1);\n /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties -- the two axes are set apart */\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n border-bottom: var(--e-stroke-hair) solid var(--e-border);\n }\n\n .e-tablist::-webkit-scrollbar {\n display: none;\n }\n\n .e-tab + .e-tab::before,\n .e-tablist > li + li > .e-tab::before {\n content: \"\";\n position: absolute;\n inset-block: 30%;\n inset-inline-start: calc(var(--e-space-1) * -0.5);\n border-inline-start: var(--e-stroke-hair) solid color-mix(in srgb, var(--e-border) 40%, transparent);\n }\n\n .e-tablist:has(> li) {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .e-tablist > li {\n display: contents;\n }\n\n a.e-tab {\n text-decoration: none;\n }\n\n .e-tabs--dense .e-tab {\n height: 2.25rem;\n font-size: var(--e-text-sm);\n }\n\n .e-tabs--vertical .e-tablist {\n flex-direction: column;\n gap: 0;\n overflow: visible;\n border-bottom: 0;\n border-inline-start: var(--e-stroke-edge) solid var(--e-border);\n }\n\n .e-tabs--vertical .e-tab {\n background-clip: padding-box;\n justify-content: flex-start;\n height: auto;\n min-height: 2rem;\n margin-inline-start: calc(-1 * var(--e-stroke-edge));\n padding-block: var(--e-space-1);\n border-bottom: 0;\n border-inline-start: 3px solid transparent;\n line-height: 1.35;\n text-align: start;\n }\n\n .e-tabs--vertical .e-tablist > li > .e-tab::before {\n content: none;\n }\n\n .e-tabs--vertical.e-tabs--dense .e-tab {\n min-height: 2.25rem;\n }\n\n .e-tabs--vertical .e-tab[aria-current=\"page\"] {\n border-inline-start-color: var(--e-primary);\n background: var(--e-surface-tint);\n }\n\n .e-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--e-space-2);\n flex: none;\n height: var(--e-control-height);\n padding: 0 var(--e-space-4);\n border: 0;\n border-bottom: 3px solid transparent;\n background: transparent;\n color: var(--e-muted);\n font: 500 var(--e-text-md) / 1 var(--e-font-sans);\n cursor: pointer;\n transition:\n color var(--e-duration-tap) var(--e-easing-out),\n background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n .e-tab:hover {\n color: var(--e-ink);\n background: var(--e-surface-tint);\n }\n\n .e-tab[aria-selected=\"true\"],\n .e-tab[aria-current=\"page\"] {\n color: var(--e-ink);\n border-bottom-color: var(--e-primary);\n font-weight: 600;\n }\n\n .e-tab:focus-visible {\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: calc(-1 * var(--e-stroke-focus));\n border-radius: var(--e-radius-sm);\n }\n\n .e-tab-count {\n min-width: 22px;\n padding: 0 6px;\n border-radius: var(--e-radius-pill);\n background: var(--e-surface-tint);\n box-shadow: inset 0 0 0 1px var(--e-border-strong);\n font: 600 var(--e-text-xs) / 20px var(--e-font-mono);\n text-align: center;\n color: var(--e-ink);\n }\n\n .e-tabpanel {\n padding-top: var(--e-space-4);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-tab {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-tab[aria-selected=\"true\"],\n .e-tab[aria-current=\"page\"] {\n forced-color-adjust: none;\n background: Highlight;\n color: HighlightText;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBA,IAAMqB,IAAQC,GAwBRC,IAASC,QAA6BH,EAAM,YAAY,CAAC,EAAE,OAAOA,EAAM,SAAS,CAAC,EAAE,CAAC,CAAC,GACtFI,IAAOD,QAAeD,EAAO,MAAM,SAAS,MAAMG,EAAE,KAAK,CAAC,GAC1DC,IAAQH,QAAeC,EAAK,MAAM,MAAM,MAAMG,EAAE,SAAS,KAAA,KAAaA,EAAE,OAAO,KAAA,CAAS,CAAC,GAEzFC,IAAQ7B,EAAmBsB,GAAA,YAAC,GAE5BS,IAASC,EAAU,GACnBC,IAAUT,QAAeK,EAAM,SAASJ,EAAK,MAAM,EAAE,EAAE,EAAE,GACzDS,IAAMV,QACJO,EAAO,QAAQ,OAAO,WAAa,OAAe,SAAS,gBAAgB,QAAQ,QAAQ,QAAQ,MAC3G,GAEMI,IAAOC,EAAiC,IAAI;EAElD,eAAeC,EAAO,GAAiB;GACrC,MAAMC,EAAS;GACf,IAAMC,IAAKJ,EAAK,OAAO,KACjBK,IAAMD,GAAI,cAA2B,0BAAwB;GACnE,IAAI,CAACA,KAAM,CAACC,KAAOD,EAAG,eAAeA,EAAG,aAAa;GACrD,IAAME,IAAO,OAAO,aAAe,OAAe,WAAW,kCAAkC,CAAC,CAAC,SAC3FC,IAAIF,EAAI,sBAAsB,GAC9BG,IAAIJ,EAAG,sBAAsB;GACnC,EAAG,SAAS;IAAE,MAAMG,EAAE,OAAOA,EAAE,QAAQ,KAAKC,EAAE,OAAOA,EAAE,QAAQ;IAAI,UAAUC,KAAU,CAACH,IAAO,WAAW;GAAO,CAAC;EACpH;E,OAEAI,QAAgBR,EAAO,EAAK,CAAC,GAC7BS,EAAMb,SAAeI,EAAO,EAAI,CAAC,I,SAKvBV,EAAA,SADR1B,EAAA,GAAAC,EAeUC,GAAA;;GAbR,OAAKC,EAAA,CAAC,wBAAsB,CACnBkB,EAAA,gBAAW,cAAA,oBAAuCA,EAAA,SAAK,eAAA,CAAA,CAAA;GAC/D,QAAQC,EAAA;GACR,OAAOD,EAAA;GACP,kBAAgBA,EAAA;GACjB,cAAW;GACX,iBAAc;GACd,cAAW;;GAEA,MAAIjB,GACG,EADC,cAAI,CAClBC,EAAAC,EAAA8C,EAAK,KAAK,IAAG,KAChB,CAAA,GAAYA,EAAK,SAAK,O,aAAtBpD,EAAA,GAAAO,EAA2E,QAA3EQ,GAA2ET,EAApB8C,EAAK,KAAK,GAAA,CAAA,E;;;;;;;E,OAGrEpD,EAAA,GAAAC,EAUWQ,EAAA+C,CAAA,GAAA;;GAVM,OAAM;GAAU,eAAaxB,EAAA;GAAU,KAAKC,EAAA;GAAM,uBAAkB,AAAAwB,EAAA,QAAA,MAAE,EAAA,QAAQ,OAAOC,CAAM;;GAC1G,SAAAtD,QAKW,CALXM,EAKWD,EAAAmD,CAAA,GAAA;IALG,SAAA;IAAJ,KAAI1B;IAAO,OAAM;;IACZ,SAAA9B,QAAoB,EAAjCJ,EAAA,EAAA,GAAAO,EAGcI,GAAA,MAAAC,EAHcY,EAAA,QAAR,OAApBxB,EAAA,GAAAC,EAGcQ,EAAAsD,CAAA,GAAA;KAHqB,KAAKX,EAAK;KAAK,OAAOA,EAAK;KAAK,OAAM;;KACvE,SAAAhD,QAAgB,CAAbC,EAAAC,EAAA8C,EAAK,KAAK,IAAG,KAChB,CAAA,GAAYA,EAAK,SAAK,O,aAAtBpD,EAAA,GAAAO,EAA2E,QAA3ES,GAA2EV,EAApB8C,EAAK,KAAK,GAAA,CAAA,E;;;;G,UAGrEpD,EAAA,EAAA,GAAAO,EAEcI,GAAA,MAAAC,EAFcY,EAAA,QAAR,OAApBxB,EAAA,GAAAC,EAEcQ,EAAAuD,CAAA,GAAA;IAFqB,KAAKZ,EAAK;IAAK,OAAOA,EAAK;IAAK,OAAM;;IACvE,SAAAhD,QAA6E,CAA7ES,EAA6EqD,EAAA,QAAhEd,EAAK,IAAE,EAAU,QAAI,SAA2C,CAAzCvC,EAAkCqD,EAAA,QAAA,SAAA,EAAR,QAAI,CAAA,C"}
1
+ {"version":3,"file":"ETabs.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createBlock","_unref","_withCtx","_createVNode","_createElementBlock","_Fragment","_renderList","_createTextVNode","_toDisplayString","_createCommentVNode","_renderSlot","_hoisted_1","ETabs_vue_vue_type_script_setup_true_lang_default","\"modelValue\"","\"modelModifiers\"","props","__props","flat","computed","model","useModel","config","useConfig","current","dir","list","ref","reveal","nextTick","el","tab","calm","a","b","smooth","onMounted","watch","openBlock","createBlock","unref","TabsRoot","_cache","$event","withCtx","createVNode","TabsList","createElementBlock","Fragment","renderList","TabsTrigger","item","createTextVNode","toDisplayString","createCommentVNode","TabsContent","renderSlot","_ctx"],"sources":["../../../src/components/Tabs/ETabs.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TabItem {\n /** Names the tab's slot, and is the value of `v-model`. */\n id: string;\n /** The tab's words. */\n label: string;\n /** A number or short word in a small badge after the label. */\n count?: number | string;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch } from \"vue\";\nimport { TabsContent, TabsList, TabsRoot, TabsTrigger } from \"reka-ui\";\nimport { useConfig } from \"../../config.js\";\nimport \"../../styles/base.css\";\n\nconst props = defineProps<{\n /** The tabs, in order: `{ id, label, count? }`. Two to five, with short labels. `id` names the slot and is the `v-model` value. */\n items?: TabItem[];\n}>();\n\ndefineSlots<{\n [id: string]: ((props: { item: TabItem }) => unknown) | undefined;\n /** The panel of any tab that has no slot of its own. */\n panel?(props: { item: TabItem }): unknown;\n}>();\n\nconst flat = computed(() => props.items ?? []);\n\n/** The `id` of the selected tab. Keeps its own state when unbound. @default first tab */\nconst model = defineModel<string>();\n\nconst config = useConfig();\nconst current = computed(() => model.value ?? flat.value[0]?.id);\nconst dir = computed<\"ltr\" | \"rtl\">(\n () => config.dir ?? (typeof document !== \"undefined\" && document.documentElement.dir === \"rtl\" ? \"rtl\" : \"ltr\"),\n);\n\nconst list = ref<{ $el: HTMLElement } | null>(null);\n\nasync function reveal(smooth: boolean) {\n await nextTick();\n const el = list.value?.$el;\n const tab = el?.querySelector<HTMLElement>('[aria-selected=\"true\"]');\n if (!el || !tab || el.scrollWidth <= el.clientWidth) return;\n const calm = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const a = tab.getBoundingClientRect();\n const b = el.getBoundingClientRect();\n el.scrollBy({ left: a.left + a.width / 2 - (b.left + b.width / 2), behavior: smooth && !calm ? \"smooth\" : \"auto\" });\n}\n\nonMounted(() => reveal(false));\nwatch(current, () => reveal(true));\n</script>\n\n<template>\n <TabsRoot class=\"e-tabs\" :model-value=\"current\" :dir=\"dir\" @update:model-value=\"model = String($event)\">\n <TabsList ref=\"list\" class=\"e-tablist\">\n <TabsTrigger v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id\" class=\"e-tab\">\n {{ item.label }}\n <span v-if=\"item.count != null\" class=\"e-tab-count\">{{ item.count }}</span>\n </TabsTrigger>\n </TabsList>\n <TabsContent v-for=\"item in flat\" :key=\"item.id\" :value=\"item.id\" class=\"e-tabpanel\">\n <slot :name=\"item.id\" :item=\"item\"><slot name=\"panel\" :item=\"item\" /></slot>\n </TabsContent>\n </TabsRoot>\n</template>\n\n<style>\n@layer e.containers {\n .e-tablist {\n display: flex;\n gap: 0;\n /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties -- the two axes are set apart */\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n }\n\n .e-tablist::-webkit-scrollbar {\n display: none;\n }\n\n /* Tabs are button-like: every tab is ringed and neighbours sit flush and share an edge, so only the outer ends of the row are rounded. The selected tab is outlined in the primary colour with a thick slab underneath. */\n .e-tab {\n --e-bc: var(--e-border-strong);\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--e-space-2);\n flex: none;\n height: var(--e-control-height);\n padding: 0 var(--e-space-4);\n border: var(--e-stroke-edge) solid var(--e-bc);\n border-radius: 0;\n outline: var(--e-stroke-edge) solid var(--e-bc);\n outline-offset: calc(-1 * var(--e-stroke-edge));\n background: transparent;\n color: var(--e-muted);\n font: 500 var(--e-text-md) / 1 var(--e-font-sans);\n cursor: pointer;\n transition:\n color var(--e-duration-tap) var(--e-easing-out),\n background-color var(--e-duration-tap) var(--e-easing-out);\n }\n\n /* Only the outer ends of the row are rounded. */\n .e-tab:first-child {\n border-start-start-radius: var(--e-radius-md);\n border-end-start-radius: var(--e-radius-md);\n }\n\n .e-tab:last-child {\n border-start-end-radius: var(--e-radius-md);\n border-end-end-radius: var(--e-radius-md);\n }\n\n .e-tab + .e-tab {\n margin-inline-start: calc(-1 * var(--e-stroke-edge));\n }\n\n .e-tab:hover {\n --e-bc: var(--e-ink);\n\n z-index: var(--e-z-raised);\n color: var(--e-ink);\n background-color: var(--e-surface-hover);\n }\n\n .e-tab[aria-selected=\"true\"] {\n --e-bc: var(--e-primary);\n\n z-index: var(--e-z-sticky);\n border-bottom-width: calc(var(--e-stroke-edge) + var(--e-depth));\n background-color: color-mix(in srgb, var(--e-surface-tint), var(--e-ink) 3%);\n color: var(--e-ink);\n font-weight: 600;\n }\n\n .e-tab:focus-visible {\n z-index: var(--e-z-focus);\n outline: var(--e-stroke-focus) solid var(--e-focus-ring);\n outline-offset: var(--e-focus-gap);\n }\n\n .e-tab-count {\n min-width: var(--e-space-6);\n padding: 0 var(--e-space-2);\n border-radius: var(--e-radius-pill);\n background: color-mix(in srgb, var(--e-primary) 12%, var(--e-surface));\n box-shadow: inset 0 0 0 var(--e-stroke-hair) var(--e-primary);\n outline: var(--e-stroke-hair) solid var(--e-primary);\n outline-offset: calc(-1 * var(--e-stroke-hair));\n font: 600 var(--e-text-xs) / 20px var(--e-font-mono);\n text-align: center;\n color: var(--e-ink);\n }\n\n .e-tabpanel {\n padding-top: var(--e-space-4);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .e-tab {\n transition: none;\n }\n }\n\n @media (forced-colors: active) {\n .e-tab[aria-selected=\"true\"] {\n forced-color-adjust: none;\n background: Highlight;\n color: HighlightText;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;EAiBA,IAAMiB,IAAQC,GAWRC,IAAOC,QAAeH,EAAM,SAAS,CAAC,CAAC,GAGvCI,IAAQrB,EAAmBkB,GAAA,YAAC,GAE5BK,IAASC,EAAU,GACnBC,IAAUL,QAAeC,EAAM,SAASF,EAAK,MAAM,EAAE,EAAE,EAAE,GACzDO,IAAMN,QACJG,EAAO,QAAQ,OAAO,WAAa,OAAe,SAAS,gBAAgB,QAAQ,QAAQ,QAAQ,MAC3G,GAEMI,IAAOC,EAAiC,IAAI;EAElD,eAAeC,EAAO,GAAiB;GACrC,MAAMC,EAAS;GACf,IAAMC,IAAKJ,EAAK,OAAO,KACjBK,IAAMD,GAAI,cAA2B,0BAAwB;GACnE,IAAI,CAACA,KAAM,CAACC,KAAOD,EAAG,eAAeA,EAAG,aAAa;GACrD,IAAME,IAAO,OAAO,aAAe,OAAe,WAAW,kCAAkC,CAAC,CAAC,SAC3FC,IAAIF,EAAI,sBAAsB,GAC9BG,IAAIJ,EAAG,sBAAsB;GACnC,EAAG,SAAS;IAAE,MAAMG,EAAE,OAAOA,EAAE,QAAQ,KAAKC,EAAE,OAAOA,EAAE,QAAQ;IAAI,UAAUC,KAAU,CAACH,IAAO,WAAW;GAAO,CAAC;EACpH;E,OAEAI,QAAgBR,EAAO,EAAK,CAAC,GAC7BS,EAAMb,SAAeI,EAAO,EAAI,CAAC,I,UAI/B5B,EAAA,GAAAC,EAUWC,EAAAuC,CAAA,GAAA;GAVD,OAAM;GAAU,eAAajB,EAAA;GAAU,KAAKC,EAAA;GAAM,uBAAkB,AAAAiB,EAAA,QAAA,MAAE,EAAA,QAAQ,OAAOC,CAAM;;GACnG,SAAAxC,QAKW,CALXC,EAKWF,EAAA4C,CAAA,GAAA;IALG,SAAA;IAAJ,KAAIpB;IAAO,OAAM;;IACZ,SAAAvB,QAAoB,EAAjCH,EAAA,EAAA,GAAAK,EAGcC,GAAA,MAAAC,EAHcW,EAAA,QAAR,OAApBlB,EAAA,GAAAC,EAGcC,EAAAgD,CAAA,GAAA;KAHqB,KAAKC,EAAK;KAAK,OAAOA,EAAK;KAAI,OAAM;;KACtE,SAAAhD,QAAgB,CAAbK,EAAAC,EAAA0C,EAAK,KAAK,IAAG,KAChB,CAAA,GAAYA,EAAK,SAAK,O,aAAtBnD,EAAA,GAAAK,EAA2E,QAA3EO,GAA2EH,EAApB0C,EAAK,KAAK,GAAA,CAAA,E;;;;G,UAGrEnD,EAAA,EAAA,GAAAK,EAEcC,GAAA,MAAAC,EAFcW,EAAA,QAAR,OAApBlB,EAAA,GAAAC,EAEcC,EAAAqD,CAAA,GAAA;IAFqB,KAAKJ,EAAK;IAAK,OAAOA,EAAK;IAAI,OAAM;;IACtE,SAAAhD,QAA4E,CAA5EQ,EAA4E8C,EAAA,QAA/DN,EAAK,IAAE,EAAS,QAAI,SAA2C,CAAzCxC,EAAkC8C,EAAA,QAAA,SAAA,EAAR,QAAI,CAAA,C"}
@@ -1,2 +1,2 @@
1
1
  export { default as ETabs } from './ETabs.vue.js';
2
- export type { TabItem, TabSection } from './ETabs.vue.js';
2
+ export type { TabItem } from './ETabs.vue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"EText.js","names":["_sfc_main","EText_vue_vue_type_script_setup_true_lang_default","EText_default"],"sources":["../../../src/components/Text/EText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport \"../../styles/base.css\";\n\nwithDefaults(\n defineProps<{\n /** `body` 16px, `deck` 18px for the one-sentence reading of a statement, `small` 14px. */\n variant?: \"body\" | \"deck\" | \"small\";\n /** Secondary copy, in the muted colour. */\n muted?: boolean;\n /** The element to render. */\n as?: string;\n }>(),\n { variant: \"body\", as: \"p\" },\n);\n\ndefineSlots<{\n /** The text. */\n default(): unknown;\n}>();\n</script>\n\n<template>\n <component :is=\"as\" class=\"e-text\" :class=\"[`e-text--${variant}`, muted && 'e-text--muted']\"><slot /></component>\n</template>\n\n<style>\n@layer e.primitives {\n .e-text {\n margin: 0;\n max-width: var(--e-measure);\n font: 400 var(--e-text-md) / 24px var(--e-font-sans);\n color: var(--e-ink);\n text-wrap: pretty;\n }\n\n .e-text--deck {\n font-size: var(--e-text-lg);\n line-height: 26px;\n }\n\n .e-text--small {\n font-size: var(--e-text-sm);\n line-height: 20px;\n }\n\n .e-text--muted {\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"EText.js","names":["_sfc_main","EText_vue_vue_type_script_setup_true_lang_default","EText_default"],"sources":["../../../src/components/Text/EText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport \"../../styles/base.css\";\n\nwithDefaults(\n defineProps<{\n /** 14px, for captions and fine print. */\n small?: boolean;\n /** 18px, for the one-sentence reading of a statement. */\n large?: boolean;\n /** Secondary copy, in the muted colour. */\n muted?: boolean;\n /** The element to render. */\n as?: string;\n }>(),\n { as: \"p\" },\n);\n\ndefineSlots<{\n /** The text. */\n default(): unknown;\n}>();\n</script>\n\n<template>\n <component :is=\"as\" class=\"e-text\" :class=\"[small && 'e-text--small', large && 'e-text--large', muted && 'e-text--muted']\"><slot /></component>\n</template>\n\n<style>\n@layer e.primitives {\n .e-text {\n margin: 0;\n max-width: var(--e-measure);\n font: 400 var(--e-text-md) / 24px var(--e-font-sans);\n color: var(--e-ink);\n text-wrap: pretty;\n }\n\n .e-text--large {\n font-size: var(--e-text-lg);\n line-height: 26px;\n }\n\n .e-text--small {\n font-size: var(--e-text-sm);\n line-height: 20px;\n }\n\n .e-text--muted {\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":""}
@@ -1,6 +1,8 @@
1
1
  type __VLS_Props = {
2
- /** `body` 16px, `deck` 18px for the one-sentence reading of a statement, `small` 14px. */
3
- variant?: "body" | "deck" | "small";
2
+ /** 14px, for captions and fine print. */
3
+ small?: boolean;
4
+ /** 18px, for the one-sentence reading of a statement. */
5
+ large?: boolean;
4
6
  /** Secondary copy, in the muted colour. */
5
7
  muted?: boolean;
6
8
  /** The element to render. */
@@ -11,7 +13,6 @@ type __VLS_Slots = {
11
13
  default(): unknown;
12
14
  };
13
15
  declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
- variant: "body" | "small" | "deck";
15
16
  as: string;
16
17
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
18
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -4,12 +4,17 @@ import { createBlock as e, defineComponent as t, normalizeClass as n, openBlock
4
4
  var s = /*@__PURE__*/ t({
5
5
  __name: "EText",
6
6
  props: {
7
- variant: { default: "body" },
7
+ small: { type: Boolean },
8
+ large: { type: Boolean },
8
9
  muted: { type: Boolean },
9
10
  as: { default: "p" }
10
11
  },
11
12
  setup(t) {
12
- return (s, c) => (r(), e(a(t.as), { class: n(["e-text", [`e-text--${t.variant}`, t.muted && "e-text--muted"]]) }, {
13
+ return (s, c) => (r(), e(a(t.as), { class: n(["e-text", [
14
+ t.small && "e-text--small",
15
+ t.large && "e-text--large",
16
+ t.muted && "e-text--muted"
17
+ ]]) }, {
13
18
  default: o(() => [i(s.$slots, "default")]),
14
19
  _: 3
15
20
  }, 8, ["class"]));
@@ -1 +1 @@
1
- {"version":3,"file":"EText.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_renderSlot","EText_vue_vue_type_script_setup_true_lang_default","openBlock","createBlock","resolveDynamicComponent","__props","normalizeClass","withCtx","renderSlot","_ctx"],"sources":["../../../src/components/Text/EText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport \"../../styles/base.css\";\n\nwithDefaults(\n defineProps<{\n /** `body` 16px, `deck` 18px for the one-sentence reading of a statement, `small` 14px. */\n variant?: \"body\" | \"deck\" | \"small\";\n /** Secondary copy, in the muted colour. */\n muted?: boolean;\n /** The element to render. */\n as?: string;\n }>(),\n { variant: \"body\", as: \"p\" },\n);\n\ndefineSlots<{\n /** The text. */\n default(): unknown;\n}>();\n</script>\n\n<template>\n <component :is=\"as\" class=\"e-text\" :class=\"[`e-text--${variant}`, muted && 'e-text--muted']\"><slot /></component>\n</template>\n\n<style>\n@layer e.primitives {\n .e-text {\n margin: 0;\n max-width: var(--e-measure);\n font: 400 var(--e-text-md) / 24px var(--e-font-sans);\n color: var(--e-ink);\n text-wrap: pretty;\n }\n\n .e-text--deck {\n font-size: var(--e-text-lg);\n line-height: 26px;\n }\n\n .e-text--small {\n font-size: var(--e-text-sm);\n line-height: 20px;\n }\n\n .e-text--muted {\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;E,kBAsBEA,EAAA,GAAAC,EAAiHC,EAAjGQ,EAAA,EAAE,GAAA,EAAE,OAAKP,EAAA,CAAC,UAAQ,CAAA,WAAqBO,EAAA,WAAWA,EAAA,SAAK,eAAA,CAAA,CAAA,E;GAAsB,SAAAN,QAAQ,CAARC,EAAQS,EAAA,QAAA,SAAA,C"}
1
+ {"version":3,"file":"EText.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_renderSlot","EText_vue_vue_type_script_setup_true_lang_default","openBlock","createBlock","resolveDynamicComponent","__props","normalizeClass","withCtx","renderSlot","_ctx"],"sources":["../../../src/components/Text/EText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport \"../../styles/base.css\";\n\nwithDefaults(\n defineProps<{\n /** 14px, for captions and fine print. */\n small?: boolean;\n /** 18px, for the one-sentence reading of a statement. */\n large?: boolean;\n /** Secondary copy, in the muted colour. */\n muted?: boolean;\n /** The element to render. */\n as?: string;\n }>(),\n { as: \"p\" },\n);\n\ndefineSlots<{\n /** The text. */\n default(): unknown;\n}>();\n</script>\n\n<template>\n <component :is=\"as\" class=\"e-text\" :class=\"[small && 'e-text--small', large && 'e-text--large', muted && 'e-text--muted']\"><slot /></component>\n</template>\n\n<style>\n@layer e.primitives {\n .e-text {\n margin: 0;\n max-width: var(--e-measure);\n font: 400 var(--e-text-md) / 24px var(--e-font-sans);\n color: var(--e-ink);\n text-wrap: pretty;\n }\n\n .e-text--large {\n font-size: var(--e-text-lg);\n line-height: 26px;\n }\n\n .e-text--small {\n font-size: var(--e-text-sm);\n line-height: 20px;\n }\n\n .e-text--muted {\n color: var(--e-muted);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;E,kBAwBEA,EAAA,GAAAC,EAA+IC,EAA/HQ,EAAA,EAAE,GAAA,EAAE,OAAKP,EAAA,CAAC,UAAQ;GAAUO,EAAA,SAAK;GAAqBA,EAAA,SAAK;GAAqBA,EAAA,SAAK;EAAA,CAAA,CAAA,E;GAAsB,SAAAN,QAAQ,CAARC,EAAQS,EAAA,QAAA,SAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ETextField.js","names":["_sfc_main","ETextField_vue_vue_type_script_setup_true_lang_default","ETextField_default"],"sources":["../../../src/components/TextField/ETextField.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport EField from \"../Field/EField.vue\";\nimport { focusInside } from \"../../composables/focusInside.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"./input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the input. */\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 input. */\n hint?: string;\n /** What to fix. Replaces the hint, marks the input invalid and is announced. */\n error?: string;\n /** An example, never the label. */\n placeholder?: string;\n /** The input type. */\n type?: string;\n /** A unit before the value, such as $. */\n prefix?: string;\n /** A unit after the value, such as USD. */\n suffix?: 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 id of the input; the label points at it. Generated when left out. */\n id?: string;\n}>();\n\nconst model = defineModel<string>({ default: \"\" });\n\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\nfunction inputBind(field: { id: string; ariaInvalid: \"true\" | undefined; ariaDescribedby: string | undefined }) {\n return {\n id: field.id,\n class: \"e-input\",\n type: props.type || \"text\",\n placeholder: props.placeholder,\n value: model.value,\n disabled: props.disabled,\n required: props.required,\n \"aria-invalid\": field.ariaInvalid,\n ...attrs.input(field.ariaDescribedby),\n };\n}\ndefineExpose({\n input,\n focus: () => input.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=\"error\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <!-- eslint-disable-next-line vuejs-accessibility/click-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <div\n v-if=\"prefix || suffix\"\n class=\"e-input-wrap\"\n :data-invalid=\"error ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n @click=\"focusInside\"\n >\n <span v-if=\"prefix\" class=\"e-affix e-affix--pre\" aria-hidden=\"true\">{{ prefix }}</span>\n <input ref=\"input\" v-bind=\"inputBind(field)\" @input=\"model = ($event.target as HTMLInputElement).value\" />\n <span v-if=\"suffix\" class=\"e-affix e-affix--post\" aria-hidden=\"true\">{{ suffix }}</span>\n </div>\n <input v-else ref=\"input\" v-bind=\"inputBind(field)\" @input=\"model = ($event.target as HTMLInputElement).value\" />\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.controls {\n .e-input[type=\"number\"],\n .e-input[inputmode=\"numeric\"],\n .e-input[inputmode=\"decimal\"] {\n font-variant-numeric: tabular-nums;\n }\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ETextField.js","names":["_sfc_main","ETextField_vue_vue_type_script_setup_true_lang_default","ETextField_default"],"sources":["../../../src/components/TextField/ETextField.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport EField from \"../Field/EField.vue\";\nimport { focusInside } from \"../../composables/focusInside.js\";\nimport { useFieldAttrs } from \"../../composables/useFieldAttrs.js\";\nimport \"../../styles/base.css\";\nimport \"./input.css\";\n\ndefineOptions({ inheritAttrs: false });\n\nconst props = defineProps<{\n /** The visible label, a mono kicker above the input. The placeholder is an example, never the label. */\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 input. */\n hint?: string;\n /** What to fix. Replaces the hint, marks the input invalid and is announced. */\n error?: string;\n /** An example, never the label. */\n placeholder?: string;\n /** The input type. @default \"text\" */\n type?: string;\n /** A unit before the value, such as `$`. Hidden from screen readers. */\n prefix?: string;\n /** A unit after the value, such as `USD`. Hidden from screen readers. */\n suffix?: 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 the field. */\n disabled?: boolean;\n /** The id of the input; the label points at it. @default generated */\n id?: string;\n}>();\n\n/** The text. */\nconst model = defineModel<string>({ default: \"\" });\n\nconst input = ref<HTMLInputElement | null>(null);\nconst attrs = useFieldAttrs();\nfunction inputBind(field: { id: string; ariaInvalid: \"true\" | undefined; ariaDescribedby: string | undefined }) {\n return {\n id: field.id,\n class: \"e-input\",\n type: props.type || \"text\",\n placeholder: props.placeholder,\n value: model.value,\n disabled: props.disabled,\n required: props.required,\n \"aria-invalid\": field.ariaInvalid,\n ...attrs.input(field.ariaDescribedby),\n };\n}\ndefineExpose({\n input,\n focus: () => input.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=\"error\"\n :required=\"required\"\n :optional=\"optional\"\n >\n <template #default=\"field\">\n <!-- eslint-disable-next-line vuejs-accessibility/click-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <div\n v-if=\"prefix || suffix\"\n class=\"e-input-wrap\"\n :data-invalid=\"error ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n @click=\"focusInside\"\n >\n <span v-if=\"prefix\" class=\"e-affix e-affix--pre\" aria-hidden=\"true\">{{ prefix }}</span>\n <input ref=\"input\" v-bind=\"inputBind(field)\" @input=\"model = ($event.target as HTMLInputElement).value\" />\n <span v-if=\"suffix\" class=\"e-affix e-affix--post\" aria-hidden=\"true\">{{ suffix }}</span>\n </div>\n <input v-else ref=\"input\" v-bind=\"inputBind(field)\" @input=\"model = ($event.target as HTMLInputElement).value\" />\n </template>\n </EField>\n</template>\n\n<style>\n@layer e.controls {\n .e-input[type=\"number\"],\n .e-input[inputmode=\"numeric\"],\n .e-input[inputmode=\"decimal\"] {\n font-variant-numeric: tabular-nums;\n }\n}\n</style>\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  type __VLS_Props = {
2
- /** The visible label, a mono kicker above the input. */
2
+ /** The visible label, a mono kicker above the input. The placeholder is an example, never the label. */
3
3
  label: string;
4
4
  /** Keep the label for screen readers and remove it from the page. */
5
5
  hideLabel?: boolean;
@@ -9,21 +9,23 @@ type __VLS_Props = {
9
9
  error?: string;
10
10
  /** An example, never the label. */
11
11
  placeholder?: string;
12
- /** The input type. */
12
+ /** The input type. @default "text" */
13
13
  type?: string;
14
- /** A unit before the value, such as $. */
14
+ /** A unit before the value, such as `$`. Hidden from screen readers. */
15
15
  prefix?: string;
16
- /** A unit after the value, such as USD. */
16
+ /** A unit after the value, such as `USD`. Hidden from screen readers. */
17
17
  suffix?: string;
18
- /** A word beside the label. */
18
+ /** The `required` attribute and a word beside the label. */
19
19
  required?: boolean;
20
20
  /** A word beside the label. Flag whichever is rarer. */
21
21
  optional?: boolean;
22
+ /** Disables the field. */
22
23
  disabled?: boolean;
23
- /** The id of the input; the label points at it. Generated when left out. */
24
+ /** The id of the input; the label points at it. @default generated */
24
25
  id?: string;
25
26
  };
26
27
  type __VLS_ModelProps = {
28
+ /** The text. */
27
29
  modelValue?: string;
28
30
  };
29
31
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;