@pathscale/ui 1.1.34 → 1.1.36

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 (314) hide show
  1. package/dist/components/breadcrumbs/Breadcrumbs.classes.d.ts +8 -0
  2. package/dist/components/breadcrumbs/Breadcrumbs.classes.js +13 -0
  3. package/dist/components/breadcrumbs/Breadcrumbs.js +8 -3
  4. package/dist/components/button/Button.classes.d.ts +27 -0
  5. package/dist/components/button/Button.classes.js +28 -0
  6. package/dist/components/button/Button.css +10 -1
  7. package/dist/components/button/Button.d.ts +6 -3
  8. package/dist/components/button/Button.js +37 -21
  9. package/dist/components/button-group/ButtonGroup.classes.d.ts +15 -0
  10. package/dist/components/button-group/ButtonGroup.classes.js +16 -0
  11. package/dist/components/button-group/ButtonGroup.css +117 -0
  12. package/dist/components/button-group/ButtonGroup.d.ts +23 -0
  13. package/dist/components/button-group/ButtonGroup.js +88 -0
  14. package/dist/components/button-group/context.d.ts +8 -0
  15. package/dist/components/button-group/context.js +3 -0
  16. package/dist/components/button-group/index.d.ts +1 -0
  17. package/dist/components/button-group/index.js +6 -0
  18. package/dist/components/card/Card.classes.d.ts +24 -0
  19. package/dist/components/card/Card.classes.js +25 -0
  20. package/dist/components/card/Card.css +110 -0
  21. package/dist/components/card/Card.d.ts +26 -26
  22. package/dist/components/card/Card.js +126 -70
  23. package/dist/components/card/index.d.ts +1 -1
  24. package/dist/components/card/index.js +6 -1
  25. package/dist/components/checkbox/Checkbox.js +18 -4
  26. package/dist/components/checkbox-group/CheckboxGroup.classes.d.ts +11 -0
  27. package/dist/components/checkbox-group/CheckboxGroup.classes.js +12 -0
  28. package/dist/components/checkbox-group/CheckboxGroup.css +10 -0
  29. package/dist/components/checkbox-group/CheckboxGroup.d.ts +18 -0
  30. package/dist/components/checkbox-group/CheckboxGroup.js +94 -0
  31. package/dist/components/checkbox-group/context.d.ts +11 -0
  32. package/dist/components/checkbox-group/context.js +3 -0
  33. package/dist/components/checkbox-group/index.d.ts +4 -0
  34. package/dist/components/checkbox-group/index.js +4 -0
  35. package/dist/components/chip/Chip.css +11 -9
  36. package/dist/components/chip/Chip.d.ts +2 -2
  37. package/dist/components/chip/Chip.js +38 -30
  38. package/dist/components/close-button/CloseButton.classes.d.ts +11 -0
  39. package/dist/components/close-button/CloseButton.classes.js +12 -0
  40. package/dist/components/close-button/CloseButton.css +81 -0
  41. package/dist/components/close-button/CloseButton.d.ts +14 -0
  42. package/dist/components/close-button/CloseButton.js +76 -0
  43. package/dist/components/close-button/index.d.ts +1 -0
  44. package/dist/components/close-button/index.js +3 -0
  45. package/dist/components/combo-box/ComboBox.classes.d.ts +42 -0
  46. package/dist/components/combo-box/ComboBox.classes.js +43 -0
  47. package/dist/components/combo-box/ComboBox.css +344 -0
  48. package/dist/components/combo-box/ComboBox.d.ts +86 -0
  49. package/dist/components/combo-box/ComboBox.js +725 -0
  50. package/dist/components/combo-box/index.d.ts +1 -0
  51. package/dist/components/combo-box/index.js +10 -0
  52. package/dist/components/date-field/DateField.classes.d.ts +37 -0
  53. package/dist/components/date-field/DateField.classes.js +38 -0
  54. package/dist/components/date-field/DateField.css +215 -0
  55. package/dist/components/date-field/DateField.d.ts +64 -0
  56. package/dist/components/date-field/DateField.js +334 -0
  57. package/dist/components/date-field/index.d.ts +1 -0
  58. package/dist/components/date-field/index.js +11 -0
  59. package/dist/components/description/Description.classes.d.ts +3 -0
  60. package/dist/components/description/Description.classes.js +4 -0
  61. package/dist/components/description/Description.css +10 -0
  62. package/dist/components/description/Description.d.ts +11 -0
  63. package/dist/components/description/Description.js +41 -0
  64. package/dist/components/description/index.d.ts +1 -0
  65. package/dist/components/description/index.js +5 -0
  66. package/dist/components/drawer/Drawer.css +15 -0
  67. package/dist/components/drawer/Drawer.d.ts +2 -0
  68. package/dist/components/drawer/Drawer.js +24 -16
  69. package/dist/components/error-message/ErrorMessage.classes.d.ts +3 -0
  70. package/dist/components/error-message/ErrorMessage.classes.js +4 -0
  71. package/dist/components/error-message/ErrorMessage.css +20 -0
  72. package/dist/components/error-message/ErrorMessage.d.ts +11 -0
  73. package/dist/components/error-message/ErrorMessage.js +41 -0
  74. package/dist/components/error-message/index.d.ts +1 -0
  75. package/dist/components/error-message/index.js +5 -0
  76. package/dist/components/field-error/FieldError.classes.d.ts +3 -0
  77. package/dist/components/field-error/FieldError.classes.js +4 -0
  78. package/dist/components/field-error/FieldError.css +27 -0
  79. package/dist/components/field-error/FieldError.d.ts +21 -0
  80. package/dist/components/field-error/FieldError.js +70 -0
  81. package/dist/components/field-error/index.d.ts +1 -0
  82. package/dist/components/field-error/index.js +5 -0
  83. package/dist/components/fieldset/Fieldset.classes.d.ts +14 -0
  84. package/dist/components/fieldset/Fieldset.classes.js +15 -0
  85. package/dist/components/fieldset/Fieldset.css +30 -0
  86. package/dist/components/fieldset/Fieldset.d.ts +22 -9
  87. package/dist/components/fieldset/Fieldset.js +89 -44
  88. package/dist/components/fieldset/index.d.ts +1 -2
  89. package/dist/components/fieldset/index.js +7 -2
  90. package/dist/components/form/Form.classes.d.ts +3 -0
  91. package/dist/components/form/Form.classes.js +4 -0
  92. package/dist/components/form/Form.css +5 -0
  93. package/dist/components/form/Form.d.ts +10 -16
  94. package/dist/components/form/Form.js +34 -16
  95. package/dist/components/form/index.d.ts +1 -4
  96. package/dist/components/form/index.js +3 -4
  97. package/dist/components/header/Header.classes.d.ts +3 -0
  98. package/dist/components/header/Header.classes.js +4 -0
  99. package/dist/components/header/Header.css +13 -0
  100. package/dist/components/header/Header.d.ts +9 -0
  101. package/dist/components/{form/Label.js → header/Header.js} +18 -14
  102. package/dist/components/header/index.d.ts +1 -0
  103. package/dist/components/header/index.js +5 -0
  104. package/dist/components/immersive-landing/components/FirefoxPWABanner.js +62 -68
  105. package/dist/components/immersive-landing/components/PWAInstallPrompt.js +58 -64
  106. package/dist/components/input/Input.css +3 -2
  107. package/dist/components/input/Input.d.ts +2 -2
  108. package/dist/components/input/Input.js +7 -7
  109. package/dist/components/input-group/InputGroup.classes.d.ts +21 -0
  110. package/dist/components/input-group/InputGroup.classes.js +22 -0
  111. package/dist/components/input-group/InputGroup.css +172 -0
  112. package/dist/components/input-group/InputGroup.d.ts +44 -0
  113. package/dist/components/input-group/InputGroup.js +224 -0
  114. package/dist/components/input-group/index.d.ts +1 -0
  115. package/dist/components/input-group/index.js +9 -0
  116. package/dist/components/input-otp/InputOTP.classes.d.ts +23 -0
  117. package/dist/components/input-otp/InputOTP.classes.js +24 -0
  118. package/dist/components/input-otp/InputOTP.css +170 -0
  119. package/dist/components/input-otp/InputOTP.d.ts +46 -0
  120. package/dist/components/input-otp/InputOTP.js +385 -0
  121. package/dist/components/input-otp/index.d.ts +1 -0
  122. package/dist/components/input-otp/index.js +11 -0
  123. package/dist/components/label/Label.classes.d.ts +8 -0
  124. package/dist/components/label/Label.classes.js +9 -0
  125. package/dist/components/label/Label.css +30 -0
  126. package/dist/components/label/Label.d.ts +17 -0
  127. package/dist/components/label/Label.js +60 -0
  128. package/dist/components/label/index.d.ts +1 -0
  129. package/dist/components/label/index.js +5 -0
  130. package/dist/components/list-box/ListBox.classes.d.ts +23 -0
  131. package/dist/components/list-box/ListBox.classes.js +24 -0
  132. package/dist/components/list-box/ListBox.css +148 -0
  133. package/dist/components/list-box/ListBox.d.ts +23 -0
  134. package/dist/components/list-box/ListBox.js +221 -0
  135. package/dist/components/list-box/ListBoxItem.d.ts +28 -0
  136. package/dist/components/list-box/ListBoxItem.js +228 -0
  137. package/dist/components/list-box/ListBoxSection.d.ts +11 -0
  138. package/dist/components/list-box/ListBoxSection.js +50 -0
  139. package/dist/components/list-box/context.d.ts +27 -0
  140. package/dist/components/list-box/context.js +3 -0
  141. package/dist/components/list-box/index.d.ts +17 -0
  142. package/dist/components/list-box/index.js +17 -0
  143. package/dist/components/menu/Menu.classes.d.ts +20 -0
  144. package/dist/components/menu/Menu.classes.js +21 -0
  145. package/dist/components/menu/Menu.css +199 -0
  146. package/dist/components/menu/Menu.d.ts +32 -20
  147. package/dist/components/menu/Menu.js +214 -39
  148. package/dist/components/menu/MenuItem.d.ts +35 -5
  149. package/dist/components/menu/MenuItem.js +267 -19
  150. package/dist/components/menu/MenuSection.d.ts +11 -0
  151. package/dist/components/menu/MenuSection.js +50 -0
  152. package/dist/components/menu/context.d.ts +26 -0
  153. package/dist/components/menu/context.js +3 -0
  154. package/dist/components/menu/index.d.ts +4 -3
  155. package/dist/components/menu/index.js +11 -2
  156. package/dist/components/navbar/Navbar.classes.d.ts +37 -0
  157. package/dist/components/navbar/Navbar.classes.js +41 -0
  158. package/dist/components/navbar/Navbar.js +2 -1
  159. package/dist/components/navbar/NavbarRow.js +3 -14
  160. package/dist/components/navbar/NavbarSection.js +2 -6
  161. package/dist/components/navbar/NavbarStack.js +2 -5
  162. package/dist/components/number-field/NumberField.classes.d.ts +27 -0
  163. package/dist/components/number-field/NumberField.classes.js +28 -0
  164. package/dist/components/number-field/NumberField.css +198 -0
  165. package/dist/components/number-field/NumberField.d.ts +48 -0
  166. package/dist/components/number-field/NumberField.js +347 -0
  167. package/dist/components/number-field/index.d.ts +1 -0
  168. package/dist/components/number-field/index.js +9 -0
  169. package/dist/components/search-field/SearchField.classes.d.ts +27 -0
  170. package/dist/components/search-field/SearchField.classes.js +28 -0
  171. package/dist/components/search-field/SearchField.css +183 -0
  172. package/dist/components/search-field/SearchField.d.ts +53 -0
  173. package/dist/components/search-field/SearchField.js +300 -0
  174. package/dist/components/search-field/index.d.ts +1 -0
  175. package/dist/components/search-field/index.js +9 -0
  176. package/dist/components/select/Select.css +16 -10
  177. package/dist/components/select/Select.d.ts +10 -2
  178. package/dist/components/select/Select.js +119 -33
  179. package/dist/components/separator/Separator.classes.d.ts +12 -0
  180. package/dist/components/separator/Separator.classes.js +13 -0
  181. package/dist/components/separator/Separator.css +35 -0
  182. package/dist/components/separator/Separator.d.ts +12 -0
  183. package/dist/components/separator/Separator.js +49 -0
  184. package/dist/components/separator/index.d.ts +1 -0
  185. package/dist/components/separator/index.js +4 -0
  186. package/dist/components/sidenav/Sidenav.js +2 -2
  187. package/dist/components/surface/Surface.classes.d.ts +9 -0
  188. package/dist/components/surface/Surface.classes.js +10 -0
  189. package/dist/components/surface/Surface.css +37 -0
  190. package/dist/components/surface/Surface.d.ts +12 -0
  191. package/dist/components/{menu/MenuDetails.js → surface/Surface.js} +19 -20
  192. package/dist/components/surface/index.d.ts +1 -0
  193. package/dist/components/surface/index.js +4 -0
  194. package/dist/components/table/hooks/index.d.ts +1 -9
  195. package/dist/components/table/hooks/index.js +1 -18
  196. package/dist/components/tag/Tag.classes.d.ts +20 -0
  197. package/dist/components/tag/Tag.classes.js +21 -0
  198. package/dist/components/tag/Tag.css +121 -0
  199. package/dist/components/tag/Tag.d.ts +33 -0
  200. package/dist/components/tag/Tag.js +235 -0
  201. package/dist/components/tag/index.d.ts +1 -0
  202. package/dist/components/tag/index.js +6 -0
  203. package/dist/components/tag-group/TagGroup.classes.d.ts +8 -0
  204. package/dist/components/tag-group/TagGroup.classes.js +9 -0
  205. package/dist/components/tag-group/TagGroup.css +22 -0
  206. package/dist/components/tag-group/TagGroup.d.ts +32 -0
  207. package/dist/components/tag-group/TagGroup.js +178 -0
  208. package/dist/components/tag-group/context.d.ts +15 -0
  209. package/dist/components/tag-group/context.js +3 -0
  210. package/dist/components/tag-group/index.d.ts +2 -0
  211. package/dist/components/tag-group/index.js +6 -0
  212. package/dist/components/text/Text.classes.d.ts +3 -0
  213. package/dist/components/text/Text.classes.js +4 -0
  214. package/dist/components/text/Text.css +66 -0
  215. package/dist/components/text/Text.d.ts +17 -0
  216. package/dist/components/text/Text.js +47 -0
  217. package/dist/components/text/index.d.ts +1 -0
  218. package/dist/components/text/index.js +5 -0
  219. package/dist/components/text-area/TextArea.classes.d.ts +10 -0
  220. package/dist/components/text-area/TextArea.classes.js +11 -0
  221. package/dist/components/text-area/TextArea.css +95 -0
  222. package/dist/components/text-area/TextArea.d.ts +19 -0
  223. package/dist/components/text-area/TextArea.js +61 -0
  224. package/dist/components/text-area/index.d.ts +1 -0
  225. package/dist/components/text-area/index.js +5 -0
  226. package/dist/components/text-field/TextField.classes.d.ts +10 -0
  227. package/dist/components/text-field/TextField.classes.js +11 -0
  228. package/dist/components/text-field/TextField.css +33 -0
  229. package/dist/components/text-field/TextField.d.ts +34 -0
  230. package/dist/components/text-field/TextField.js +82 -0
  231. package/dist/components/text-field/index.d.ts +1 -0
  232. package/dist/components/text-field/index.js +7 -0
  233. package/dist/components/textarea/Textarea.d.ts +8 -13
  234. package/dist/components/textarea/Textarea.js +14 -45
  235. package/dist/components/textarea/index.d.ts +2 -1
  236. package/dist/components/textarea/index.js +4 -1
  237. package/dist/components/time-field/TimeField.classes.d.ts +37 -0
  238. package/dist/components/time-field/TimeField.classes.js +38 -0
  239. package/dist/components/time-field/TimeField.css +215 -0
  240. package/dist/components/time-field/TimeField.d.ts +64 -0
  241. package/dist/components/time-field/TimeField.js +334 -0
  242. package/dist/components/time-field/index.d.ts +1 -0
  243. package/dist/components/time-field/index.js +11 -0
  244. package/dist/components/utils.d.ts +2 -2
  245. package/dist/components/utils.js +3 -17
  246. package/dist/hooks/form/index.d.ts +5 -0
  247. package/dist/hooks/form/index.js +12 -0
  248. package/dist/hooks/form/useField.d.ts +11 -0
  249. package/dist/hooks/form/useField.js +20 -0
  250. package/dist/hooks/form/useFieldError.d.ts +3 -0
  251. package/dist/hooks/form/useFieldError.js +3 -0
  252. package/dist/hooks/form/useFieldMeta.d.ts +20 -0
  253. package/dist/hooks/form/useFieldMeta.js +49 -0
  254. package/dist/hooks/form/useFieldProps.d.ts +10 -0
  255. package/dist/hooks/form/useFieldProps.js +51 -0
  256. package/dist/hooks/form/useForm.d.ts +27 -0
  257. package/dist/hooks/form/useForm.js +54 -0
  258. package/dist/hooks/form/utils.d.ts +4 -0
  259. package/dist/hooks/form/utils.js +30 -0
  260. package/dist/hooks/layout/index.d.ts +1 -0
  261. package/dist/hooks/layout/index.js +3 -0
  262. package/dist/hooks/layout/useDesktop.d.ts +1 -0
  263. package/dist/hooks/layout/useDesktop.js +17 -0
  264. package/dist/hooks/table/index.d.ts +9 -0
  265. package/dist/hooks/table/index.js +18 -0
  266. package/dist/index.d.ts +59 -7
  267. package/dist/index.js +140 -15
  268. package/dist/styles/icons/generated-icons.css +1 -1
  269. package/package.json +1 -1
  270. package/dist/components/card/CardActions.d.ts +0 -4
  271. package/dist/components/card/CardActions.js +0 -15
  272. package/dist/components/card/CardBody.d.ts +0 -4
  273. package/dist/components/card/CardBody.js +0 -15
  274. package/dist/components/card/CardImage.d.ts +0 -3
  275. package/dist/components/card/CardImage.js +0 -10
  276. package/dist/components/card/CardTitle.d.ts +0 -6
  277. package/dist/components/card/CardTitle.js +0 -13
  278. package/dist/components/card/card.css +0 -171
  279. package/dist/components/form/FormBase.d.ts +0 -8
  280. package/dist/components/form/FormBase.js +0 -74
  281. package/dist/components/form/FormDropdown.d.ts +0 -25
  282. package/dist/components/form/FormDropdown.js +0 -139
  283. package/dist/components/form/FormField.d.ts +0 -14
  284. package/dist/components/form/FormField.js +0 -78
  285. package/dist/components/form/Label.d.ts +0 -7
  286. package/dist/components/form/NumberField.d.ts +0 -20
  287. package/dist/components/form/NumberField.js +0 -109
  288. package/dist/components/form/PasswordField.d.ts +0 -16
  289. package/dist/components/form/PasswordField.js +0 -113
  290. package/dist/components/form/ValidatedForm.d.ts +0 -26
  291. package/dist/components/form/ValidatedForm.js +0 -55
  292. package/dist/components/menu/MenuDetails.d.ts +0 -8
  293. package/dist/components/menu/MenuDropdown.d.ts +0 -12
  294. package/dist/components/menu/MenuDropdown.js +0 -48
  295. package/dist/components/menu/MenuTitle.d.ts +0 -8
  296. package/dist/components/menu/MenuTitle.js +0 -22
  297. package/dist/components/menu/menu.css +0 -364
  298. package/dist/components/textarea/textarea.css +0 -191
  299. /package/dist/{components/table/hooks → hooks/table}/helpers.d.ts +0 -0
  300. /package/dist/{components/table/hooks → hooks/table}/helpers.js +0 -0
  301. /package/dist/{components/table/hooks → hooks/table}/useAnchoredOverlayPosition.d.ts +0 -0
  302. /package/dist/{components/table/hooks → hooks/table}/useAnchoredOverlayPosition.js +0 -0
  303. /package/dist/{components/table/hooks → hooks/table}/useTableExpansion.d.ts +0 -0
  304. /package/dist/{components/table/hooks → hooks/table}/useTableExpansion.js +0 -0
  305. /package/dist/{components/table/hooks → hooks/table}/useTableFiltering.d.ts +0 -0
  306. /package/dist/{components/table/hooks → hooks/table}/useTableFiltering.js +0 -0
  307. /package/dist/{components/table/hooks → hooks/table}/useTableModel.d.ts +0 -0
  308. /package/dist/{components/table/hooks → hooks/table}/useTableModel.js +0 -0
  309. /package/dist/{components/table/hooks → hooks/table}/useTablePagination.d.ts +0 -0
  310. /package/dist/{components/table/hooks → hooks/table}/useTablePagination.js +0 -0
  311. /package/dist/{components/table/hooks → hooks/table}/useTableSelection.d.ts +0 -0
  312. /package/dist/{components/table/hooks → hooks/table}/useTableSelection.js +0 -0
  313. /package/dist/{components/table/hooks → hooks/table}/useTableSorting.d.ts +0 -0
  314. /package/dist/{components/table/hooks → hooks/table}/useTableSorting.js +0 -0
@@ -1,51 +1,226 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
2
- import "./menu.css";
2
+ import "./Menu.css";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
4
  import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
- import * as __WEBPACK_EXTERNAL_MODULE_clsx__ from "clsx";
6
- import * as __WEBPACK_EXTERNAL_MODULE__MenuTitle_js_3c427b91__ from "./MenuTitle.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__ from "./Menu.classes.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__context_js_80e2871f__ from "./context.js";
7
7
  import * as __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__ from "./MenuItem.js";
8
- import * as __WEBPACK_EXTERNAL_MODULE__MenuDropdown_js_63ede5ac__ from "./MenuDropdown.js";
9
- import * as __WEBPACK_EXTERNAL_MODULE__MenuDetails_js_c50ded87__ from "./MenuDetails.js";
10
- var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<ul role=menu>");
11
- const Menu = (props)=>{
8
+ import * as __WEBPACK_EXTERNAL_MODULE__MenuSection_js_5f9fc1a1__ from "./MenuSection.js";
9
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
10
+ const normalizeKeys = (keys)=>{
11
+ if (!keys) return new Set();
12
+ return new Set(Array.from(keys, (key)=>String(key)));
13
+ };
14
+ const sortItemsByDomOrder = (items)=>[
15
+ ...items
16
+ ].sort((a, b)=>{
17
+ if (a.ref === b.ref) return 0;
18
+ const relation = a.ref.compareDocumentPosition(b.ref);
19
+ if (relation & Node.DOCUMENT_POSITION_FOLLOWING) return -1;
20
+ if (relation & Node.DOCUMENT_POSITION_PRECEDING) return 1;
21
+ return 0;
22
+ });
23
+ const invokeEventHandler = (handler, event)=>{
24
+ if ("function" == typeof handler) return void handler(event);
25
+ if (Array.isArray(handler) && "function" == typeof handler[0]) handler[0](handler[1], event);
26
+ };
27
+ const MenuRoot = (props)=>{
12
28
  const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
13
- "responsive",
14
- "horizontal",
15
- "vertical",
16
- "size",
29
+ "children",
17
30
  "class",
18
31
  "className",
19
- "dataTheme"
32
+ "dataTheme",
33
+ "style",
34
+ "items",
35
+ "renderEmptyState",
36
+ "selectionMode",
37
+ "selectedKeys",
38
+ "defaultSelectedKeys",
39
+ "disabledKeys",
40
+ "disallowEmptySelection",
41
+ "onSelectionChange",
42
+ "onAction",
43
+ "isDisabled",
44
+ "disabled",
45
+ "role",
46
+ "onKeyDown"
20
47
  ]);
21
- const classes = ()=>(0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("menu", local.class, local.className, (0, __WEBPACK_EXTERNAL_MODULE_clsx__.clsx)({
22
- "menu-responsive": local.responsive,
23
- "menu-xl": "xl" === local.size,
24
- "menu-lg": "lg" === local.size,
25
- "menu-md": "md" === local.size,
26
- "menu-sm": "sm" === local.size,
27
- "menu-xs": "xs" === local.size,
28
- "menu-vertical": local.vertical,
29
- "menu-horizontal": local.horizontal
30
- }));
31
- return (()=>{
32
- var _el$ = _tmpl$();
33
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
34
- get ["data-theme"] () {
35
- return local.dataTheme;
36
- },
37
- get ["class"] () {
38
- return classes();
48
+ const [internalSelectedKeys, setInternalSelectedKeys] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(normalizeKeys(local.defaultSelectedKeys));
49
+ const [focusedKey, setFocusedKey] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)();
50
+ const [registeredItems, setRegisteredItems] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)([]);
51
+ const selectionMode = ()=>local.selectionMode ?? "none";
52
+ const isControlled = ()=>void 0 !== local.selectedKeys;
53
+ const isDisabled = ()=>Boolean(local.isDisabled) || Boolean(local.disabled);
54
+ const selectedKeys = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>isControlled() ? normalizeKeys(local.selectedKeys) : internalSelectedKeys());
55
+ const disabledKeys = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>normalizeKeys(local.disabledKeys));
56
+ const getEnabledItems = ()=>registeredItems().filter((item)=>!item.disabled && !disabledKeys().has(item.key) && !isDisabled());
57
+ const focusItem = (item)=>{
58
+ if (!item) return;
59
+ setFocusedKey(item.key);
60
+ item.ref.focus();
61
+ };
62
+ const focusBoundary = (target)=>{
63
+ const enabledItems = getEnabledItems();
64
+ if (!enabledItems.length) return;
65
+ if ("selected" === target) {
66
+ const selectedItem = enabledItems.find((item)=>selectedKeys().has(item.key));
67
+ focusItem(selectedItem ?? enabledItems[0]);
68
+ return;
69
+ }
70
+ focusItem("first" === target ? enabledItems[0] : enabledItems[enabledItems.length - 1]);
71
+ };
72
+ const focusNext = (direction)=>{
73
+ const enabledItems = getEnabledItems();
74
+ if (!enabledItems.length) return;
75
+ const activeElement = document.activeElement;
76
+ let currentIndex = enabledItems.findIndex((item)=>item.ref === activeElement);
77
+ if (currentIndex < 0 && focusedKey()) currentIndex = enabledItems.findIndex((item)=>item.key === focusedKey());
78
+ if (currentIndex < 0) return void focusBoundary(1 === direction ? "first" : "last");
79
+ const nextIndex = (currentIndex + direction + enabledItems.length) % enabledItems.length;
80
+ focusItem(enabledItems[nextIndex]);
81
+ };
82
+ const updateSelection = (nextKeys)=>{
83
+ if (!isControlled()) setInternalSelectedKeys(nextKeys);
84
+ local.onSelectionChange?.(nextKeys);
85
+ };
86
+ const activateKey = (key, event)=>{
87
+ if (event.defaultPrevented || isDisabled()) return;
88
+ if (disabledKeys().has(key)) return;
89
+ if ("none" === selectionMode()) return void local.onAction?.(key);
90
+ const current = selectedKeys();
91
+ if ("single" === selectionMode()) {
92
+ if (!(1 === current.size && current.has(key))) updateSelection(new Set([
93
+ key
94
+ ]));
95
+ local.onAction?.(key);
96
+ return;
97
+ }
98
+ const next = new Set(current);
99
+ if (next.has(key)) {
100
+ if (local.disallowEmptySelection && 1 === next.size) return void local.onAction?.(key);
101
+ next.delete(key);
102
+ } else next.add(key);
103
+ updateSelection(next);
104
+ local.onAction?.(key);
105
+ };
106
+ const registerItem = (item)=>{
107
+ setRegisteredItems((current)=>sortItemsByDomOrder([
108
+ ...current.filter((entry)=>entry.key !== item.key),
109
+ item
110
+ ]));
111
+ };
112
+ const unregisterItem = (key)=>{
113
+ setRegisteredItems((current)=>current.filter((item)=>item.key !== key));
114
+ if (focusedKey() === key) setFocusedKey(void 0);
115
+ };
116
+ const isItemDisabled = (key, localDisabled)=>Boolean(localDisabled) || disabledKeys().has(key) || isDisabled();
117
+ const getItemTabIndex = (key, localDisabled)=>{
118
+ if (isItemDisabled(key, localDisabled)) return -1;
119
+ if (focusedKey() === key) return 0;
120
+ if (!focusedKey()) {
121
+ const enabledItems = getEnabledItems();
122
+ if (!enabledItems.length) return -1;
123
+ return enabledItems[0]?.key === key ? 0 : -1;
124
+ }
125
+ return -1;
126
+ };
127
+ const handleKeyDown = (event)=>{
128
+ invokeEventHandler(local.onKeyDown, event);
129
+ if (event.defaultPrevented) return;
130
+ if (event.target !== event.currentTarget) return;
131
+ if ("ArrowDown" === event.key || "ArrowRight" === event.key) {
132
+ event.preventDefault();
133
+ focusNext(1);
134
+ }
135
+ if ("ArrowUp" === event.key || "ArrowLeft" === event.key) {
136
+ event.preventDefault();
137
+ focusNext(-1);
138
+ }
139
+ if ("Home" === event.key) {
140
+ event.preventDefault();
141
+ focusBoundary("first");
142
+ }
143
+ if ("End" === event.key) {
144
+ event.preventDefault();
145
+ focusBoundary("last");
146
+ }
147
+ };
148
+ const renderChildren = ()=>{
149
+ const isItemRenderer = "function" == typeof local.children && local.children.length > 0;
150
+ const resolvedStaticChildren = "function" == typeof local.children ? isItemRenderer ? null : local.children() : local.children ?? null;
151
+ if (local.items) {
152
+ if (0 === local.items.length) return local.renderEmptyState?.() ?? null;
153
+ if (isItemRenderer) {
154
+ const renderItem = local.children;
155
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
156
+ get each () {
157
+ return local.items;
158
+ },
159
+ children: (item)=>renderItem(item)
160
+ });
39
161
  }
40
- }, others), false, false);
41
- return _el$;
42
- })();
162
+ }
163
+ return resolvedStaticChildren;
164
+ };
165
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE__context_js_80e2871f__.MenuContext.Provider, {
166
+ value: {
167
+ selectionMode,
168
+ selectedKeys,
169
+ disabledKeys,
170
+ isDisabled,
171
+ focusedKey,
172
+ isSelected: (key)=>selectedKeys().has(key),
173
+ isItemDisabled,
174
+ getItemTabIndex,
175
+ registerItem,
176
+ unregisterItem,
177
+ activateKey,
178
+ setFocusedKey,
179
+ focusNext,
180
+ focusBoundary
181
+ },
182
+ get children () {
183
+ var _el$ = _tmpl$();
184
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
185
+ get role () {
186
+ return local.role ?? "menu";
187
+ },
188
+ get ["aria-disabled"] () {
189
+ return isDisabled() ? "true" : void 0;
190
+ },
191
+ "data-slot": "menu",
192
+ get ["data-theme"] () {
193
+ return local.dataTheme;
194
+ },
195
+ get ["data-selection-mode"] () {
196
+ return selectionMode();
197
+ },
198
+ get ["data-disabled"] () {
199
+ return isDisabled() ? "true" : "false";
200
+ },
201
+ get ["class"] () {
202
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.Root.base, local.class, local.className);
203
+ },
204
+ get style () {
205
+ return local.style;
206
+ },
207
+ onKeyDown: handleKeyDown
208
+ }), false, true);
209
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, renderChildren);
210
+ return _el$;
211
+ }
212
+ });
43
213
  };
44
- const menu_Menu = Object.assign(Menu, {
45
- Title: __WEBPACK_EXTERNAL_MODULE__MenuTitle_js_3c427b91__["default"],
214
+ const Menu = Object.assign(MenuRoot, {
215
+ Root: MenuRoot,
46
216
  Item: __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__["default"],
47
- Dropdown: __WEBPACK_EXTERNAL_MODULE__MenuDropdown_js_63ede5ac__["default"],
48
- Details: __WEBPACK_EXTERNAL_MODULE__MenuDetails_js_c50ded87__["default"],
49
- Menu: Menu
217
+ ItemIndicator: __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__.MenuItemIndicator,
218
+ Section: __WEBPACK_EXTERNAL_MODULE__MenuSection_js_5f9fc1a1__["default"]
50
219
  });
51
- export { menu_Menu as default };
220
+ const menu_Menu = Menu;
221
+ var __webpack_exports__MenuItem = __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__["default"];
222
+ var __webpack_exports__MenuItemIndicator = __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__.MenuItemIndicator;
223
+ var __webpack_exports__MenuItemRoot = __WEBPACK_EXTERNAL_MODULE__MenuItem_js_0945051f__.MenuItemRoot;
224
+ var __webpack_exports__MenuSection = __WEBPACK_EXTERNAL_MODULE__MenuSection_js_5f9fc1a1__["default"];
225
+ var __webpack_exports__MenuSectionRoot = __WEBPACK_EXTERNAL_MODULE__MenuSection_js_5f9fc1a1__.MenuSectionRoot;
226
+ export { Menu, MenuRoot, menu_Menu as default, __webpack_exports__MenuItem as MenuItem, __webpack_exports__MenuItemIndicator as MenuItemIndicator, __webpack_exports__MenuItemRoot as MenuItemRoot, __webpack_exports__MenuSection as MenuSection, __webpack_exports__MenuSectionRoot as MenuSectionRoot };
@@ -1,9 +1,39 @@
1
- import { type JSX, type Component } from "solid-js";
1
+ import { type Component, type JSX, type ParentComponent } from "solid-js";
2
2
  import type { IComponentBaseProps } from "../types";
3
- export type MenuItemProps = JSX.LiHTMLAttributes<HTMLLIElement> & IComponentBaseProps & {
4
- focus?: boolean;
5
- active?: boolean;
3
+ import { type MenuItemVariant, type MenuSelectionMode } from "./context";
4
+ type MenuItemRenderProps = {
5
+ isSelected: boolean;
6
+ isFocused: boolean;
7
+ isDisabled: boolean;
8
+ hasSubmenu: boolean;
9
+ selectionMode: MenuSelectionMode;
10
+ };
11
+ export type MenuItemRootProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
12
+ id?: string | number;
13
+ textValue?: string;
14
+ variant?: MenuItemVariant;
15
+ isDisabled?: boolean;
6
16
  disabled?: boolean;
17
+ hasSubmenu?: boolean;
18
+ onAction?: (key: string) => void;
19
+ children?: JSX.Element | ((props: MenuItemRenderProps) => JSX.Element);
20
+ };
21
+ export type MenuItemIndicatorType = "checkmark" | "dot";
22
+ export type MenuItemIndicatorProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, "children"> & IComponentBaseProps & {
23
+ type?: MenuItemIndicatorType;
24
+ children?: JSX.Element | ((props: MenuItemRenderProps) => JSX.Element);
25
+ };
26
+ export type MenuItemSubmenuIndicatorProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, "children"> & IComponentBaseProps & {
27
+ children?: JSX.Element;
28
+ };
29
+ declare const MenuItemRoot: ParentComponent<MenuItemRootProps>;
30
+ declare const MenuItemIndicator: Component<MenuItemIndicatorProps>;
31
+ declare const MenuItemSubmenuIndicator: Component<MenuItemSubmenuIndicatorProps>;
32
+ declare const MenuItem: ParentComponent<MenuItemRootProps> & {
33
+ Root: ParentComponent<MenuItemRootProps>;
34
+ Indicator: Component<MenuItemIndicatorProps>;
35
+ SubmenuIndicator: Component<MenuItemSubmenuIndicatorProps>;
7
36
  };
8
- declare const MenuItem: Component<MenuItemProps>;
9
37
  export default MenuItem;
38
+ export { MenuItem, MenuItemRoot, MenuItemIndicator, MenuItemSubmenuIndicator };
39
+ export type { MenuItemRootProps as MenuItemProps, MenuItemRenderProps, MenuSelectionMode, MenuItemVariant, };
@@ -1,40 +1,288 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
2
2
  import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
4
- import * as __WEBPACK_EXTERNAL_MODULE_clsx__ from "clsx";
5
- var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<li role=menuitem>");
6
- const MenuItem = (props)=>{
4
+ import * as __WEBPACK_EXTERNAL_MODULE__context_js_80e2871f__ from "./context.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__ from "./Menu.classes.js";
6
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>"), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg aria-hidden=true data-slot=menu-item-indicator--dot fill=currentColor fill-rule=evenodd role=presentation viewBox="0 0 16 16"xmlns=http://www.w3.org/2000/svg><path clip-rule=evenodd d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14"fill-rule=evenodd>'), _tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg aria-hidden=true data-slot=menu-item-indicator--checkmark fill=none role=presentation stroke=currentColor stroke-dasharray=22 stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox="0 0 17 18"><polyline points="1 9 7 14 15 4">'), _tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg aria-hidden=true fill=none role=presentation viewBox="0 0 16 16"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round><path d="M6 3.5L10 8l-4 4.5">');
7
+ const MenuItemStateContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
8
+ const invokeEventHandler = (handler, event)=>{
9
+ if ("function" == typeof handler) return void handler(event);
10
+ if (Array.isArray(handler) && "function" == typeof handler[0]) handler[0](handler[1], event);
11
+ };
12
+ const toSlug = (value)=>value.trim().toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-");
13
+ const extractTextValue = (nodes)=>{
14
+ for (const node of nodes){
15
+ if ("string" == typeof node && node.trim().length > 0) return node.trim();
16
+ if ("number" == typeof node) return String(node);
17
+ }
18
+ };
19
+ const MenuItemRoot = (props)=>{
20
+ const menu = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(__WEBPACK_EXTERNAL_MODULE__context_js_80e2871f__.MenuContext);
21
+ const fallbackKey = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createUniqueId)();
7
22
  const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
23
+ "children",
8
24
  "class",
9
25
  "className",
10
- "focus",
11
- "active",
26
+ "dataTheme",
27
+ "style",
28
+ "id",
29
+ "textValue",
30
+ "variant",
31
+ "isDisabled",
12
32
  "disabled",
33
+ "hasSubmenu",
34
+ "onAction",
35
+ "onClick",
36
+ "onKeyDown",
37
+ "onFocus",
38
+ "onBlur",
39
+ "ref",
40
+ "tabIndex",
41
+ "role"
42
+ ]);
43
+ let itemRef;
44
+ const key = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
45
+ if (null != local.id) return String(local.id);
46
+ if (local.textValue) return toSlug(local.textValue);
47
+ const staticChildren = "function" == typeof local.children ? [] : [
48
+ local.children
49
+ ];
50
+ const textValue = extractTextValue(staticChildren);
51
+ if (textValue) return toSlug(textValue);
52
+ return fallbackKey;
53
+ });
54
+ const variant = ()=>local.variant ?? "default";
55
+ const selectionMode = ()=>menu?.selectionMode() ?? "none";
56
+ const isSelected = ()=>menu?.isSelected(key()) ?? false;
57
+ const isFocused = ()=>menu?.focusedKey() === key();
58
+ const isDisabled = ()=>menu?.isItemDisabled(key(), Boolean(local.isDisabled) || Boolean(local.disabled)) ?? (Boolean(local.isDisabled) || Boolean(local.disabled));
59
+ const renderState = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>({
60
+ isSelected: isSelected(),
61
+ isFocused: isFocused(),
62
+ isDisabled: isDisabled(),
63
+ hasSubmenu: Boolean(local.hasSubmenu),
64
+ selectionMode: selectionMode()
65
+ }));
66
+ const resolvedRole = ()=>{
67
+ if (local.role) return local.role;
68
+ if ("multiple" === selectionMode()) return "menuitemcheckbox";
69
+ if ("single" === selectionMode()) return "menuitemradio";
70
+ return "menuitem";
71
+ };
72
+ const resolvedTabIndex = ()=>{
73
+ if (void 0 !== local.tabIndex) return local.tabIndex;
74
+ if (!menu) return isDisabled() ? -1 : 0;
75
+ return menu.getItemTabIndex(key(), isDisabled());
76
+ };
77
+ const handleActivate = (event)=>{
78
+ if (event.defaultPrevented || isDisabled()) return;
79
+ menu?.activateKey(key(), event);
80
+ local.onAction?.(key());
81
+ };
82
+ const handleClick = (event)=>{
83
+ invokeEventHandler(local.onClick, event);
84
+ handleActivate(event);
85
+ };
86
+ const handleKeyDown = (event)=>{
87
+ invokeEventHandler(local.onKeyDown, event);
88
+ if (event.defaultPrevented || isDisabled()) return;
89
+ if ("ArrowDown" === event.key || "ArrowRight" === event.key) {
90
+ event.preventDefault();
91
+ menu?.focusNext(1);
92
+ return;
93
+ }
94
+ if ("ArrowUp" === event.key || "ArrowLeft" === event.key) {
95
+ event.preventDefault();
96
+ menu?.focusNext(-1);
97
+ return;
98
+ }
99
+ if ("Home" === event.key) {
100
+ event.preventDefault();
101
+ menu?.focusBoundary("first");
102
+ return;
103
+ }
104
+ if ("End" === event.key) {
105
+ event.preventDefault();
106
+ menu?.focusBoundary("last");
107
+ return;
108
+ }
109
+ if ("Enter" === event.key || " " === event.key) {
110
+ event.preventDefault();
111
+ handleActivate(event);
112
+ }
113
+ };
114
+ const handleFocus = (event)=>{
115
+ invokeEventHandler(local.onFocus, event);
116
+ if (event.defaultPrevented) return;
117
+ menu?.setFocusedKey(key());
118
+ };
119
+ const handleBlur = (event)=>{
120
+ invokeEventHandler(local.onBlur, event);
121
+ if (event.defaultPrevented) return;
122
+ if (menu?.focusedKey() === key()) menu.setFocusedKey(void 0);
123
+ };
124
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
125
+ if (!menu || !itemRef) return;
126
+ menu.registerItem({
127
+ key: key(),
128
+ disabled: Boolean(local.isDisabled) || Boolean(local.disabled),
129
+ ref: itemRef
130
+ });
131
+ });
132
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
133
+ if (!menu) return;
134
+ menu.unregisterItem(key());
135
+ });
136
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(MenuItemStateContext.Provider, {
137
+ value: {
138
+ renderState
139
+ },
140
+ get children () {
141
+ var _el$ = _tmpl$();
142
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)((node)=>{
143
+ itemRef = node;
144
+ if ("function" == typeof local.ref) local.ref(node);
145
+ }, _el$);
146
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
147
+ get role () {
148
+ return resolvedRole();
149
+ },
150
+ get tabIndex () {
151
+ return resolvedTabIndex();
152
+ },
153
+ get ["aria-selected"] () {
154
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"none" === selectionMode())() ? void 0 : isSelected() ? "true" : "false";
155
+ },
156
+ get ["aria-checked"] () {
157
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"none" === selectionMode())() ? void 0 : isSelected() ? "true" : "false";
158
+ },
159
+ get ["aria-disabled"] () {
160
+ return isDisabled() ? "true" : void 0;
161
+ },
162
+ "data-slot": "menu-item",
163
+ get ["data-theme"] () {
164
+ return local.dataTheme;
165
+ },
166
+ get ["data-disabled"] () {
167
+ return isDisabled() ? "true" : "false";
168
+ },
169
+ get ["data-selected"] () {
170
+ return isSelected() ? "true" : "false";
171
+ },
172
+ get ["data-focus"] () {
173
+ return isFocused() ? "true" : "false";
174
+ },
175
+ get ["data-has-submenu"] () {
176
+ return local.hasSubmenu ? "true" : void 0;
177
+ },
178
+ get ["data-selection-mode"] () {
179
+ return selectionMode();
180
+ },
181
+ get ["data-key"] () {
182
+ return key();
183
+ },
184
+ get ["class"] () {
185
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.Item.base, __WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.Item.variant[variant()], local.class, local.className);
186
+ },
187
+ get style () {
188
+ return local.style;
189
+ },
190
+ onClick: handleClick,
191
+ onKeyDown: handleKeyDown,
192
+ onFocus: handleFocus,
193
+ onBlur: handleBlur
194
+ }), false, true);
195
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (()=>{
196
+ var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"function" == typeof local.children);
197
+ return ()=>_c$() ? local.children(renderState()) : local.children;
198
+ })());
199
+ return _el$;
200
+ }
201
+ });
202
+ };
203
+ const MenuItemIndicator = (props)=>{
204
+ const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(MenuItemStateContext);
205
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
13
206
  "children",
207
+ "class",
208
+ "className",
209
+ "dataTheme",
14
210
  "style",
15
- "dataTheme"
211
+ "type"
16
212
  ]);
17
- const classes = ()=>(0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(local.class, local.className, (0, __WEBPACK_EXTERNAL_MODULE_clsx__.clsx)({
18
- "menu-focus": local.focus,
19
- "menu-active": local.active,
20
- "menu-disabled": local.disabled
21
- }));
213
+ const renderState = ()=>context?.renderState() ?? {
214
+ isSelected: false,
215
+ isFocused: false,
216
+ isDisabled: false,
217
+ hasSubmenu: false,
218
+ selectionMode: "none"
219
+ };
220
+ const type = ()=>local.type ?? "checkmark";
22
221
  return (()=>{
23
- var _el$ = _tmpl$();
24
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
222
+ var _el$2 = _tmpl$2();
223
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
224
+ "aria-hidden": "true",
225
+ "data-slot": "menu-item-indicator",
226
+ get ["data-theme"] () {
227
+ return local.dataTheme;
228
+ },
229
+ get ["data-type"] () {
230
+ return type();
231
+ },
232
+ get ["data-visible"] () {
233
+ return renderState().isSelected ? "true" : void 0;
234
+ },
25
235
  get ["class"] () {
26
- return classes();
236
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.ItemIndicator.base, local.class, local.className);
27
237
  },
28
238
  get style () {
29
239
  return local.style;
30
- },
240
+ }
241
+ }), false, true);
242
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (()=>{
243
+ var _c$2 = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"function" == typeof local.children);
244
+ return ()=>_c$2() ? local.children(renderState()) : (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>!!local.children)() ? local.children : (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"dot" === type())() ? _tmpl$3() : (()=>{
245
+ var _el$4 = _tmpl$4();
246
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$4, "stroke-dashoffset", String(renderState().isSelected ? 44 : 66)));
247
+ return _el$4;
248
+ })();
249
+ })());
250
+ return _el$2;
251
+ })();
252
+ };
253
+ const MenuItemSubmenuIndicator = (props)=>{
254
+ const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(MenuItemStateContext);
255
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
256
+ "children",
257
+ "class",
258
+ "className",
259
+ "dataTheme",
260
+ "style"
261
+ ]);
262
+ if (!context?.renderState().hasSubmenu) return null;
263
+ return (()=>{
264
+ var _el$5 = _tmpl$2();
265
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$5, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
266
+ "aria-hidden": "true",
267
+ "data-slot": "submenu-indicator",
31
268
  get ["data-theme"] () {
32
269
  return local.dataTheme;
270
+ },
271
+ get ["class"] () {
272
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.ItemIndicator.base, __WEBPACK_EXTERNAL_MODULE__Menu_classes_js_2247f1e5__.CLASSES.ItemIndicator.submenu, local.class, local.className);
273
+ },
274
+ get style () {
275
+ return local.style;
33
276
  }
34
- }, others), false, true);
35
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>local.children);
36
- return _el$;
277
+ }), false, true);
278
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$5, ()=>local.children ?? _tmpl$5());
279
+ return _el$5;
37
280
  })();
38
281
  };
282
+ const MenuItem = Object.assign(MenuItemRoot, {
283
+ Root: MenuItemRoot,
284
+ Indicator: MenuItemIndicator,
285
+ SubmenuIndicator: MenuItemSubmenuIndicator
286
+ });
39
287
  const menu_MenuItem = MenuItem;
40
- export { menu_MenuItem as default };
288
+ export { MenuItem, MenuItemIndicator, MenuItemRoot, MenuItemSubmenuIndicator, menu_MenuItem as default };
@@ -0,0 +1,11 @@
1
+ import { type Component, type JSX } from "solid-js";
2
+ import type { IComponentBaseProps } from "../types";
3
+ export type MenuSectionRootProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
4
+ children?: JSX.Element;
5
+ title?: JSX.Element;
6
+ };
7
+ declare const MenuSectionRoot: Component<MenuSectionRootProps>;
8
+ declare const MenuSection: Component<MenuSectionRootProps>;
9
+ export default MenuSection;
10
+ export { MenuSection, MenuSectionRoot };
11
+ export type { MenuSectionRootProps as MenuSectionProps };