@fuf-stack/pixels 1.11.1 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/Accordion/Accordion.cjs +0 -1
  2. package/dist/Accordion/Accordion.cjs.map +1 -1
  3. package/dist/Accordion/Accordion.d.cts +10 -10
  4. package/dist/Accordion/Accordion.d.cts.map +1 -1
  5. package/dist/Accordion/Accordion.d.ts +10 -10
  6. package/dist/Accordion/Accordion.d.ts.map +1 -1
  7. package/dist/Alert/Alert.cjs +0 -1
  8. package/dist/Alert/Alert.cjs.map +1 -1
  9. package/dist/Alert/Alert.d.cts +6 -6
  10. package/dist/Alert/Alert.d.cts.map +1 -1
  11. package/dist/Alert/Alert.d.ts +6 -6
  12. package/dist/Alert/Alert.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.cjs +0 -1
  14. package/dist/Avatar/Avatar.cjs.map +1 -1
  15. package/dist/Avatar/Avatar.d.cts +10 -10
  16. package/dist/Avatar/Avatar.d.ts +10 -10
  17. package/dist/AvatarGroup/AvatarGroup.cjs +0 -1
  18. package/dist/AvatarGroup/AvatarGroup.cjs.map +1 -1
  19. package/dist/Badge/Badge.cjs +0 -1
  20. package/dist/Badge/Badge.cjs.map +1 -1
  21. package/dist/Breadcrumb/Breadcrumb.cjs +10 -11
  22. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  23. package/dist/Breadcrumb/Breadcrumb.d.cts +16 -16
  24. package/dist/Breadcrumb/Breadcrumb.d.ts +16 -16
  25. package/dist/Breadcrumb/Breadcrumb.js +10 -10
  26. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  27. package/dist/Button/Button.cjs +0 -1
  28. package/dist/Button/Button.cjs.map +1 -1
  29. package/dist/Button/subcomponents/LoadingSpinner.cjs +0 -1
  30. package/dist/Button/subcomponents/LoadingSpinner.cjs.map +1 -1
  31. package/dist/ButtonGroup/ButtonGroup.cjs +0 -1
  32. package/dist/ButtonGroup/ButtonGroup.cjs.map +1 -1
  33. package/dist/Card/Card.cjs +1 -2
  34. package/dist/Card/Card.cjs.map +1 -1
  35. package/dist/Card/Card.d.cts +10 -10
  36. package/dist/Card/Card.d.ts +10 -10
  37. package/dist/Card/Card.js +1 -1
  38. package/dist/Card/Card.js.map +1 -1
  39. package/dist/Drawer/Drawer.cjs +0 -1
  40. package/dist/Drawer/Drawer.cjs.map +1 -1
  41. package/dist/Drawer/Drawer.d.cts +10 -10
  42. package/dist/Drawer/Drawer.d.ts +10 -10
  43. package/dist/Json/Json.cjs +30 -23
  44. package/dist/Json/Json.cjs.map +1 -1
  45. package/dist/Json/Json.d.cts.map +1 -1
  46. package/dist/Json/Json.d.ts.map +1 -1
  47. package/dist/Json/Json.js +30 -22
  48. package/dist/Json/Json.js.map +1 -1
  49. package/dist/Json/subcomponents/CopiedRenderer.cjs +3 -4
  50. package/dist/Json/subcomponents/CopiedRenderer.cjs.map +1 -1
  51. package/dist/Json/subcomponents/CopiedRenderer.js +3 -3
  52. package/dist/Json/subcomponents/CopiedRenderer.js.map +1 -1
  53. package/dist/Json/subcomponents/ErrorRenderer.cjs +0 -1
  54. package/dist/Json/subcomponents/ErrorRenderer.cjs.map +1 -1
  55. package/dist/Json/subcomponents/NullRenderer.cjs +0 -1
  56. package/dist/Json/subcomponents/NullRenderer.cjs.map +1 -1
  57. package/dist/Label/Label.cjs +0 -1
  58. package/dist/Label/Label.cjs.map +1 -1
  59. package/dist/Label/Label.d.cts +29 -29
  60. package/dist/Label/Label.d.cts.map +1 -1
  61. package/dist/Label/Label.d.ts +29 -29
  62. package/dist/Label/Label.d.ts.map +1 -1
  63. package/dist/Menu/Menu.cjs +1 -2
  64. package/dist/Menu/Menu.cjs.map +1 -1
  65. package/dist/Menu/Menu.d.cts +10 -10
  66. package/dist/Menu/Menu.d.cts.map +1 -1
  67. package/dist/Menu/Menu.d.ts +10 -10
  68. package/dist/Menu/Menu.d.ts.map +1 -1
  69. package/dist/Menu/Menu.js +1 -1
  70. package/dist/Menu/Menu.js.map +1 -1
  71. package/dist/Menu/VerticalDotsIcon.cjs +0 -1
  72. package/dist/Menu/VerticalDotsIcon.cjs.map +1 -1
  73. package/dist/Modal/Modal.cjs +0 -1
  74. package/dist/Modal/Modal.cjs.map +1 -1
  75. package/dist/Modal/Modal.d.cts +35 -35
  76. package/dist/Modal/Modal.d.cts.map +1 -1
  77. package/dist/Modal/Modal.d.ts +35 -35
  78. package/dist/Modal/Modal.d.ts.map +1 -1
  79. package/dist/Modal/ModalHost.cjs +0 -1
  80. package/dist/Modal/ModalHost.cjs.map +1 -1
  81. package/dist/Modal/modalStore.cjs +0 -1
  82. package/dist/Modal/modalStore.cjs.map +1 -1
  83. package/dist/Popover/Popover.cjs +1 -2
  84. package/dist/Popover/Popover.cjs.map +1 -1
  85. package/dist/Popover/Popover.d.cts +16 -16
  86. package/dist/Popover/Popover.d.ts +16 -16
  87. package/dist/Popover/Popover.js +1 -1
  88. package/dist/Popover/Popover.js.map +1 -1
  89. package/dist/Progress/Progress.cjs +0 -1
  90. package/dist/Progress/Progress.cjs.map +1 -1
  91. package/dist/Progress/Progress.d.cts +10 -10
  92. package/dist/Progress/Progress.d.cts.map +1 -1
  93. package/dist/Progress/Progress.d.ts +10 -10
  94. package/dist/Progress/Progress.d.ts.map +1 -1
  95. package/dist/ProgressCircular/ProgressCircular.cjs +1 -2
  96. package/dist/ProgressCircular/ProgressCircular.cjs.map +1 -1
  97. package/dist/ProgressCircular/ProgressCircular.d.cts +43 -43
  98. package/dist/ProgressCircular/ProgressCircular.d.cts.map +1 -1
  99. package/dist/ProgressCircular/ProgressCircular.d.ts +43 -43
  100. package/dist/ProgressCircular/ProgressCircular.d.ts.map +1 -1
  101. package/dist/ProgressCircular/ProgressCircular.js +1 -1
  102. package/dist/ProgressCircular/ProgressCircular.js.map +1 -1
  103. package/dist/ScrollShadow/ScrollShadow.cjs +0 -1
  104. package/dist/ScrollShadow/ScrollShadow.cjs.map +1 -1
  105. package/dist/SearchInput/SearchInput.cjs +8 -9
  106. package/dist/SearchInput/SearchInput.cjs.map +1 -1
  107. package/dist/SearchInput/SearchInput.d.cts +10 -10
  108. package/dist/SearchInput/SearchInput.d.ts +10 -10
  109. package/dist/SearchInput/SearchInput.js +8 -8
  110. package/dist/SearchInput/SearchInput.js.map +1 -1
  111. package/dist/Table/Table.cjs +0 -1
  112. package/dist/Table/Table.cjs.map +1 -1
  113. package/dist/Table/Table.d.cts +62 -62
  114. package/dist/Table/Table.d.cts.map +1 -1
  115. package/dist/Table/Table.d.ts +62 -62
  116. package/dist/Table/Table.d.ts.map +1 -1
  117. package/dist/Tabs/Tabs.cjs +0 -1
  118. package/dist/Tabs/Tabs.cjs.map +1 -1
  119. package/dist/Toast/Toaster.cjs +0 -1
  120. package/dist/Toast/Toaster.cjs.map +1 -1
  121. package/dist/Toast/toast.cjs +0 -1
  122. package/dist/Toast/toast.cjs.map +1 -1
  123. package/dist/Tooltip/Tooltip.cjs +6 -7
  124. package/dist/Tooltip/Tooltip.cjs.map +1 -1
  125. package/dist/Tooltip/Tooltip.d.cts +45 -45
  126. package/dist/Tooltip/Tooltip.d.cts.map +1 -1
  127. package/dist/Tooltip/Tooltip.d.ts +45 -45
  128. package/dist/Tooltip/Tooltip.d.ts.map +1 -1
  129. package/dist/Tooltip/Tooltip.js +6 -6
  130. package/dist/Tooltip/Tooltip.js.map +1 -1
  131. package/dist/hooks/useDebounce/useDebounce.cjs +0 -1
  132. package/dist/hooks/useDebounce/useDebounce.cjs.map +1 -1
  133. package/dist/hooks/useIsInitialRenderCycle/useIsInitialRenderCycle.cjs +0 -1
  134. package/dist/hooks/useIsInitialRenderCycle/useIsInitialRenderCycle.cjs.map +1 -1
  135. package/dist/hooks/useLocalStorage/useLocalStorage.cjs +0 -1
  136. package/dist/hooks/useLocalStorage/useLocalStorage.cjs.map +1 -1
  137. package/dist/node_modules/.pnpm/@uiw_react-json-view@2.0.0-alpha.43_@babel_runtime@7.29.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@uiw/react-json-view/esm/comps/useIdCompat.cjs +0 -1
  138. package/dist/node_modules/.pnpm/@uiw_react-json-view@2.0.0-alpha.43_@babel_runtime@7.29.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@uiw/react-json-view/esm/comps/useIdCompat.cjs.map +1 -1
  139. package/dist/node_modules/.pnpm/@uiw_react-json-view@2.0.0-alpha.43_@babel_runtime@7.29.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@uiw/react-json-view/esm/utils/useHighlight.cjs +0 -1
  140. package/dist/node_modules/.pnpm/@uiw_react-json-view@2.0.0-alpha.43_@babel_runtime@7.29.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/@uiw/react-json-view/esm/utils/useHighlight.cjs.map +1 -1
  141. package/package.json +4 -4
@@ -330,19 +330,19 @@ declare const menuVariants: ((props?: ({
330
330
  defaultVariants: {};
331
331
  compoundVariants: ({} & ({
332
332
  class?: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
333
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
334
333
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
334
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
335
335
  };
336
336
  className?: never;
337
337
  } | {
338
338
  class?: never;
339
339
  className?: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
340
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
341
340
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
341
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
342
342
  };
343
343
  }))[];
344
344
  compoundSlots: ({
345
- slots: ("item" | "trigger")[];
345
+ slots: ("trigger" | "item")[];
346
346
  } & ({} & ({
347
347
  class?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
348
348
  className?: never;
@@ -360,34 +360,34 @@ declare const menuVariants: ((props?: ({
360
360
  variants: {
361
361
  [key: string]: {
362
362
  [key: string]: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
363
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
364
363
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
364
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
365
365
  };
366
366
  };
367
367
  } | {
368
368
  [x: string]: {
369
369
  [x: string]: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
370
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
371
370
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
371
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
372
372
  };
373
373
  };
374
374
  } | {};
375
375
  defaultVariants: {};
376
376
  compoundVariants: ({} & ({
377
377
  class?: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
378
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
379
378
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
379
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
380
380
  };
381
381
  className?: never;
382
382
  } | {
383
383
  class?: never;
384
384
  className?: (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined) | {
385
- item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
386
385
  trigger?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
386
+ item?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
387
387
  };
388
388
  }))[];
389
389
  compoundSlots: (({
390
- slots: ("item" | "trigger")[];
390
+ slots: ("trigger" | "item")[];
391
391
  } & ({
392
392
  [x: string]: string | number | (string | number)[] | undefined;
393
393
  } & ({
@@ -397,7 +397,7 @@ declare const menuVariants: ((props?: ({
397
397
  class?: never;
398
398
  className?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
399
399
  }))) | ({
400
- slots: ("item" | "trigger")[];
400
+ slots: ("trigger" | "item")[];
401
401
  } & ({
402
402
  [x: string]: string | number | (string | number)[] | undefined;
403
403
  } & ({
@@ -407,7 +407,7 @@ declare const menuVariants: ((props?: ({
407
407
  class?: never;
408
408
  className?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
409
409
  }))) | ({
410
- slots: ("item" | "trigger")[];
410
+ slots: ("trigger" | "item")[];
411
411
  } & ({} & ({
412
412
  class?: string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | readonly (string | false | 0 | 0n | /*elided*/any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
413
413
  className?: never;
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","names":[],"sources":["../../src/Menu/Menu.tsx"],"mappings":";;;;;;;;AAyBA;UAAiB,QAAA;;EAEf,GAAA;EAUO;EARP,SAAA;EAU+B;EAR/B,WAAA;EAJA;EAMA,QAAA;EAFA;EAIA,IAAA,GAAO,SAAA;EAAP;EAEA,KAAA,EAAO,SAAA;EAAP;EAEA,OAAA,GAAU,iBAAA;EAAV;EAEA,MAAA;AAAA;;AAAM;AAMR;UAAiB,WAAA;;EAEf,GAAA;EAAA;EAEA,KAAA,EAAO,SAAA;EAAA;EAEP,KAAA,EAAO,QAAQ;AAAA;AAAA,cAIJ,YAAA,IAAY,KAAA;EAAA;;;gbAKvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gbALuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;obAOR;;;;wbAA8B;IAAA;;obACnB;;;;wbAED;IAAA;EAAA;;;;;;;;;;qbAAoB;qbAAZ;wbAEjC;MAAA;;;;ybAMA;qbAAQ;wbAAc;MAAA;IAAA;;;;obAMV;;;;wbAKV;IAAA;;;;;;;;;;4bAsDU;qbAAA;wbAAA;MAAA;IAAA;EAAA;IAAA;0bAUF;qbAVE;wbAAA;MAAA;IAAA;EAAA;;;mbAAA;mbAAA;sbAAA;IAAA;;;;ubAAA;mbAAA;sbAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA5ET,YAAA,GAAe,OAAO,QAAQ,YAAA;AAAA,KAC9B,SAAA,GAAY,WAAW,QAAQ,YAAA;AAAA,UAEnB,SAAA,SAAkB,YAAA;;EAEjC,SAAA;;EAEA,QAAA,GAAW,SAAA;;EAEX,SAAA,GAAY,SAAA;;EAEZ,KAAA,GAAQ,WAAA,GAAc,QAAA;;EAEtB,UAAA;;EAEA,SAAA,GAAY,aAAA;;EAEZ,QAAA,IAAY,GAAA,EAAK,GAAA;;EAEjB,MAAA;;EAEA,kBAAA,GAAqB,IAAA,CACnB,WAAA;IASI,aAAA;EAAA;AAAA;;;;cA6CF,IAAA;EAAQ,SAAA;EAAA,QAAA;EAAA,SAAA,EAAA,UAAA;EAAA,UAAA;EAAA,KAAA;EAAA,QAAA;EAAA,SAAA;EAAA,MAAA;EAAA;AAAA,GAUX,SAAA,iCAAS,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"Menu.d.ts","names":[],"sources":["../../src/Menu/Menu.tsx"],"mappings":";;;;;;;;AAyBA;UAAiB,QAAA;;EAEf,GAAA;EAUO;EARP,SAAA;EAU+B;EAR/B,WAAA;EAJA;EAMA,QAAA;EAFA;EAIA,IAAA,GAAO,SAAA;EAAP;EAEA,KAAA,EAAO,SAAA;EAAP;EAEA,OAAA,GAAU,iBAAA;EAAV;EAEA,MAAA;AAAA;;AAAM;AAMR;UAAiB,WAAA;;EAEf,GAAA;EAAA;EAEA,KAAA,EAAO,SAAA;EAAA;EAEP,KAAA,EAAO,QAAQ;AAAA;AAAA,cAIJ,YAAA,IAAY,KAAA;EAAA;;;gbAKvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gbALuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;obAOR;;;;wbAA8B;IAAA;;obACnB;;;;wbAED;IAAA;EAAA;;;;;;;;;;qbAAoB;wbAAZ;qbAEjC;MAAA;;;;ybAMA;wbAAQ;qbAAc;MAAA;IAAA;;;;obAMV;;;;wbAKV;IAAA;;;;;;;;;;4bAsDU;wbAAA;qbAAA;MAAA;IAAA;EAAA;IAAA;0bAUF;wbAVE;qbAAA;MAAA;IAAA;EAAA;;;mbAAA;sbAAA;mbAAA;IAAA;;;;ubAAA;sbAAA;mbAAA;IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA5ET,YAAA,GAAe,OAAO,QAAQ,YAAA;AAAA,KAC9B,SAAA,GAAY,WAAW,QAAQ,YAAA;AAAA,UAEnB,SAAA,SAAkB,YAAA;;EAEjC,SAAA;;EAEA,QAAA,GAAW,SAAA;;EAEX,SAAA,GAAY,SAAA;;EAEZ,KAAA,GAAQ,WAAA,GAAc,QAAA;;EAEtB,UAAA;;EAEA,SAAA,GAAY,aAAA;;EAEZ,QAAA,IAAY,GAAA,EAAK,GAAA;;EAEjB,MAAA;;EAEA,kBAAA,GAAqB,IAAA,CACnB,WAAA;IASI,aAAA;EAAA;AAAA;;;;cA6CF,IAAA;EAAQ,SAAA;EAAA,QAAA;EAAA,SAAA,EAAA,UAAA;EAAA,UAAA;EAAA,KAAA;EAAA,QAAA;EAAA,SAAA;EAAA,MAAA;EAAA;AAAA,GAUX,SAAA,iCAAS,GAAA,CAAA,OAAA"}
package/dist/Menu/Menu.js CHANGED
@@ -43,8 +43,8 @@ const Menu = ({ ariaLabel = void 0, children = null, className: _className = voi
43
43
  children
44
44
  });
45
45
  if (!children) triggerButton = /* @__PURE__ */ jsx(Button, {
46
- isIconOnly: true,
47
46
  className: cn("min-w-0 outline outline-divider", className.trigger),
47
+ isIconOnly: true,
48
48
  radius: "full",
49
49
  size: "sm",
50
50
  variant: "light",
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["HeroDropdownItem","HeroDropdown","HeroDropdownTrigger","HeroDropdownMenu","HeroDropdownSection"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ButtonProps } from '@heroui/button';\nimport type {\n DropdownItemProps as HeroDropdownItemProps,\n DropdownProps as HeroDropdownProps,\n DropdownSectionProps as HeroDropdownSectionProps,\n} from '@heroui/dropdown';\nimport type { Key, ReactNode } from 'react';\n\nimport { Button } from '@heroui/button';\nimport {\n Dropdown as HeroDropdown,\n DropdownItem as HeroDropdownItem,\n DropdownMenu as HeroDropdownMenu,\n DropdownSection as HeroDropdownSection,\n DropdownTrigger as HeroDropdownTrigger,\n} from '@heroui/dropdown';\n\nimport { cn, slugify, tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport VerticalDotsIcon from './VerticalDotsIcon';\n\n/**\n * Menu component based on [HeroUI Dropdown](https://www.heroui.com//docs/components/dropdown)\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: HeroDropdownItemProps['onPress'];\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\n// menu styling variants\nexport const menuVariants = tv({\n slots: {\n item: '',\n trigger: 'z-auto',\n },\n});\n\ntype VariantProps = TVProps<typeof menuVariants>;\ntype ClassName = TVClassName<typeof menuVariants>;\n\nexport interface MenuProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** placement of the menu */\n placement?: HeroDropdownProps['placement'];\n /** called if item is selected */\n onAction?: (key: Key) => void;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** When defined a Button will be rendered as trigger (with provided props) instead of unstyled html button */\n triggerButtonProps?: Pick<\n ButtonProps,\n | 'aria-label'\n | 'className'\n | 'color'\n | 'disableAnimation'\n | 'disableRipple'\n | 'disabled'\n | 'size'\n | 'variant'\n > & { 'data-testid'?: string };\n}\n\n// type guard for MenuSection\nconst isMenuSection = (item: MenuSection | MenuItem): item is MenuSection => {\n return 'items' in item;\n};\n\n// returns String[] of disabled items/keys\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]): string[] => {\n const flatItems = items.reduce<MenuItem[]>((acc, item) => {\n if (isMenuSection(item)) {\n acc.push(...item.items);\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n return flatItems\n .filter((item) => {\n return item.disabled === true;\n })\n .map((item) => {\n return item.key;\n });\n};\n\nconst renderMenuItem = (item: MenuItem, itemClassName?: string) => {\n return (\n <HeroDropdownItem\n key={item.key}\n className={cn(itemClassName, item.className)}\n data-testid={slugify(item.testId ?? item.key)}\n description={item.description}\n onPress={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </HeroDropdownItem>\n );\n};\n\n/**\n * Dropdown menu component based on [HeroUI Dropdown](https://www.heroui.com//docs/components/dropdown)\n */\nconst Menu = ({\n ariaLabel = undefined,\n children = null,\n className: _className = undefined,\n isDisabled = false,\n items,\n onAction = undefined,\n placement = undefined,\n testId = undefined,\n triggerButtonProps = undefined,\n}: MenuProps) => {\n // className from slots\n const variants = menuVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n // determine trigger button variant\n let triggerButton = (\n <button className={className.trigger} type=\"button\">\n {children}\n </button>\n );\n if (!children) {\n // default to ellipsis icon when no children are provided\n triggerButton = (\n <Button\n isIconOnly\n className={cn('min-w-0 outline outline-divider', className.trigger)}\n radius=\"full\"\n size=\"sm\"\n variant=\"light\"\n {...triggerButtonProps}\n >\n <VerticalDotsIcon />\n </Button>\n );\n } else if (triggerButtonProps) {\n // use provided triggerButtonProps with hero button\n triggerButton = (\n <Button className={className.trigger} {...triggerButtonProps}>\n {children}\n </Button>\n );\n }\n\n return (\n <HeroDropdown\n aria-label={ariaLabel}\n isDisabled={isDisabled}\n placement={placement}\n >\n <HeroDropdownTrigger data-testid={testId}>\n {/* NOTE: type and aria properties are injected by HeroDropdownTrigger */}\n {triggerButton}\n </HeroDropdownTrigger>\n <HeroDropdownMenu\n disabledKeys={getDisabledKeys(items)}\n items={items}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <HeroDropdownSection\n key={item.key}\n items={item.items}\n title={item.label as HeroDropdownSectionProps['title']}\n >\n {(sectionItem) => {\n return renderMenuItem(sectionItem, className.item);\n }}\n </HeroDropdownSection>\n );\n }\n return renderMenuItem(item, className.item);\n }}\n </HeroDropdownMenu>\n </HeroDropdown>\n );\n};\n\nexport default Menu;\n"],"mappings":";;;;;;AAyDA,MAAa,eAAe,GAAG,EAC7B,OAAO;CACL,MAAM;CACN,SAAS;AACX,EACF,CAAC;AAqCD,MAAM,iBAAiB,SAAsD;CAC3E,OAAO,WAAW;AACpB;AAGA,MAAM,mBAAmB,UAAgD;CASvE,OARkB,MAAM,QAAoB,KAAK,SAAS;EACxD,IAAI,cAAc,IAAI,GACpB,IAAI,KAAK,GAAG,KAAK,KAAK;OAEtB,IAAI,KAAK,IAAI;EAEf,OAAO;CACT,GAAG,CAAC,CACW,EACZ,QAAQ,SAAS;EAChB,OAAO,KAAK,aAAa;CAC3B,CAAC,EACA,KAAK,SAAS;EACb,OAAO,KAAK;CACd,CAAC;AACL;AAEA,MAAM,kBAAkB,MAAgB,kBAA2B;CACjE,OACE,oBAACA,cAAD;EAEE,WAAW,GAAG,eAAe,KAAK,SAAS;EAC3C,eAAa,QAAQ,KAAK,UAAU,KAAK,GAAG;EAC5C,aAAa,KAAK;EAClB,SAAS,KAAK;EACd,cAAc,KAAK;YAElB,KAAK;CACU,GARX,KAAK,GAQM;AAEtB;;;;AAKA,MAAM,QAAQ,EACZ,YAAY,KAAA,GACZ,WAAW,MACX,WAAW,aAAa,KAAA,GACxB,aAAa,OACb,OACA,WAAW,KAAA,GACX,YAAY,KAAA,GACZ,SAAS,KAAA,GACT,qBAAqB,KAAA,QACN;CAGf,MAAM,YAAY,qBADD,aAC6B,GAAG,YAAY,SAAS;CAGtE,IAAI,gBACF,oBAAC,UAAD;EAAQ,WAAW,UAAU;EAAS,MAAK;EACxC;CACK,CAAA;CAEV,IAAI,CAAC,UAEH,gBACE,oBAAC,QAAD;EACE,YAAA;EACA,WAAW,GAAG,mCAAmC,UAAU,OAAO;EAClE,QAAO;EACP,MAAK;EACL,SAAQ;EACR,GAAI;YAEJ,oBAAC,kBAAD,CAAmB,CAAA;CACb,CAAA;MAEL,IAAI,oBAET,gBACE,oBAAC,QAAD;EAAQ,WAAW,UAAU;EAAS,GAAI;EACvC;CACK,CAAA;CAIZ,OACE,qBAACC,UAAD;EACE,cAAY;EACA;EACD;YAHb,CAKE,oBAACC,iBAAD;GAAqB,eAAa;aAE/B;EACkB,CAAA,GACrB,oBAACC,cAAD;GACE,cAAc,gBAAgB,KAAK;GAC5B;GACG;cAER,SAAS;IACT,IAAI,WAAW,MACb,OACE,oBAACC,iBAAD;KAEE,OAAO,KAAK;KACZ,OAAO,KAAK;gBAEV,gBAAgB;MAChB,OAAO,eAAe,aAAa,UAAU,IAAI;KACnD;IACmB,GAPd,KAAK,GAOS;IAGzB,OAAO,eAAe,MAAM,UAAU,IAAI;GAC5C;EACgB,CAAA,CACN;;AAElB"}
1
+ {"version":3,"file":"Menu.js","names":["HeroDropdownItem","HeroDropdown","HeroDropdownTrigger","HeroDropdownMenu","HeroDropdownSection"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ButtonProps } from '@heroui/button';\nimport type {\n DropdownItemProps as HeroDropdownItemProps,\n DropdownProps as HeroDropdownProps,\n DropdownSectionProps as HeroDropdownSectionProps,\n} from '@heroui/dropdown';\nimport type { Key, ReactNode } from 'react';\n\nimport { Button } from '@heroui/button';\nimport {\n Dropdown as HeroDropdown,\n DropdownItem as HeroDropdownItem,\n DropdownMenu as HeroDropdownMenu,\n DropdownSection as HeroDropdownSection,\n DropdownTrigger as HeroDropdownTrigger,\n} from '@heroui/dropdown';\n\nimport { cn, slugify, tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport VerticalDotsIcon from './VerticalDotsIcon';\n\n/**\n * Menu component based on [HeroUI Dropdown](https://www.heroui.com//docs/components/dropdown)\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: HeroDropdownItemProps['onPress'];\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\n// menu styling variants\nexport const menuVariants = tv({\n slots: {\n item: '',\n trigger: 'z-auto',\n },\n});\n\ntype VariantProps = TVProps<typeof menuVariants>;\ntype ClassName = TVClassName<typeof menuVariants>;\n\nexport interface MenuProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** placement of the menu */\n placement?: HeroDropdownProps['placement'];\n /** called if item is selected */\n onAction?: (key: Key) => void;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** When defined a Button will be rendered as trigger (with provided props) instead of unstyled html button */\n triggerButtonProps?: Pick<\n ButtonProps,\n | 'aria-label'\n | 'className'\n | 'color'\n | 'disableAnimation'\n | 'disableRipple'\n | 'disabled'\n | 'size'\n | 'variant'\n > & { 'data-testid'?: string };\n}\n\n// type guard for MenuSection\nconst isMenuSection = (item: MenuSection | MenuItem): item is MenuSection => {\n return 'items' in item;\n};\n\n// returns String[] of disabled items/keys\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]): string[] => {\n const flatItems = items.reduce<MenuItem[]>((acc, item) => {\n if (isMenuSection(item)) {\n acc.push(...item.items);\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n return flatItems\n .filter((item) => {\n return item.disabled === true;\n })\n .map((item) => {\n return item.key;\n });\n};\n\nconst renderMenuItem = (item: MenuItem, itemClassName?: string) => {\n return (\n <HeroDropdownItem\n key={item.key}\n className={cn(itemClassName, item.className)}\n data-testid={slugify(item.testId ?? item.key)}\n description={item.description}\n onPress={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </HeroDropdownItem>\n );\n};\n\n/**\n * Dropdown menu component based on [HeroUI Dropdown](https://www.heroui.com//docs/components/dropdown)\n */\nconst Menu = ({\n ariaLabel = undefined,\n children = null,\n className: _className = undefined,\n isDisabled = false,\n items,\n onAction = undefined,\n placement = undefined,\n testId = undefined,\n triggerButtonProps = undefined,\n}: MenuProps) => {\n // className from slots\n const variants = menuVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n // determine trigger button variant\n let triggerButton = (\n <button className={className.trigger} type=\"button\">\n {children}\n </button>\n );\n if (!children) {\n // default to ellipsis icon when no children are provided\n triggerButton = (\n <Button\n className={cn('min-w-0 outline outline-divider', className.trigger)}\n isIconOnly\n radius=\"full\"\n size=\"sm\"\n variant=\"light\"\n {...triggerButtonProps}\n >\n <VerticalDotsIcon />\n </Button>\n );\n } else if (triggerButtonProps) {\n // use provided triggerButtonProps with hero button\n triggerButton = (\n <Button className={className.trigger} {...triggerButtonProps}>\n {children}\n </Button>\n );\n }\n\n return (\n <HeroDropdown\n aria-label={ariaLabel}\n isDisabled={isDisabled}\n placement={placement}\n >\n <HeroDropdownTrigger data-testid={testId}>\n {/* NOTE: type and aria properties are injected by HeroDropdownTrigger */}\n {triggerButton}\n </HeroDropdownTrigger>\n <HeroDropdownMenu\n disabledKeys={getDisabledKeys(items)}\n items={items}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <HeroDropdownSection\n key={item.key}\n items={item.items}\n title={item.label as HeroDropdownSectionProps['title']}\n >\n {(sectionItem) => {\n return renderMenuItem(sectionItem, className.item);\n }}\n </HeroDropdownSection>\n );\n }\n return renderMenuItem(item, className.item);\n }}\n </HeroDropdownMenu>\n </HeroDropdown>\n );\n};\n\nexport default Menu;\n"],"mappings":";;;;;;AAyDA,MAAa,eAAe,GAAG,EAC7B,OAAO;CACL,MAAM;CACN,SAAS;AACX,EACF,CAAC;AAqCD,MAAM,iBAAiB,SAAsD;CAC3E,OAAO,WAAW;AACpB;AAGA,MAAM,mBAAmB,UAAgD;CASvE,OARkB,MAAM,QAAoB,KAAK,SAAS;EACxD,IAAI,cAAc,IAAI,GACpB,IAAI,KAAK,GAAG,KAAK,KAAK;OAEtB,IAAI,KAAK,IAAI;EAEf,OAAO;CACT,GAAG,CAAC,CACW,EACZ,QAAQ,SAAS;EAChB,OAAO,KAAK,aAAa;CAC3B,CAAC,EACA,KAAK,SAAS;EACb,OAAO,KAAK;CACd,CAAC;AACL;AAEA,MAAM,kBAAkB,MAAgB,kBAA2B;CACjE,OACE,oBAACA,cAAD;EAEE,WAAW,GAAG,eAAe,KAAK,SAAS;EAC3C,eAAa,QAAQ,KAAK,UAAU,KAAK,GAAG;EAC5C,aAAa,KAAK;EAClB,SAAS,KAAK;EACd,cAAc,KAAK;YAElB,KAAK;CACU,GARX,KAAK,GAQM;AAEtB;;;;AAKA,MAAM,QAAQ,EACZ,YAAY,KAAA,GACZ,WAAW,MACX,WAAW,aAAa,KAAA,GACxB,aAAa,OACb,OACA,WAAW,KAAA,GACX,YAAY,KAAA,GACZ,SAAS,KAAA,GACT,qBAAqB,KAAA,QACN;CAGf,MAAM,YAAY,qBADD,aAC6B,GAAG,YAAY,SAAS;CAGtE,IAAI,gBACF,oBAAC,UAAD;EAAQ,WAAW,UAAU;EAAS,MAAK;EACxC;CACK,CAAA;CAEV,IAAI,CAAC,UAEH,gBACE,oBAAC,QAAD;EACE,WAAW,GAAG,mCAAmC,UAAU,OAAO;EAClE,YAAA;EACA,QAAO;EACP,MAAK;EACL,SAAQ;EACR,GAAI;YAEJ,oBAAC,kBAAD,CAAmB,CAAA;CACb,CAAA;MAEL,IAAI,oBAET,gBACE,oBAAC,QAAD;EAAQ,WAAW,UAAU;EAAS,GAAI;EACvC;CACK,CAAA;CAIZ,OACE,qBAACC,UAAD;EACE,cAAY;EACA;EACD;YAHb,CAKE,oBAACC,iBAAD;GAAqB,eAAa;aAE/B;EACkB,CAAA,GACrB,oBAACC,cAAD;GACE,cAAc,gBAAgB,KAAK;GAC5B;GACG;cAER,SAAS;IACT,IAAI,WAAW,MACb,OACE,oBAACC,iBAAD;KAEE,OAAO,KAAK;KACZ,OAAO,KAAK;gBAEV,gBAAgB;MAChB,OAAO,eAAe,aAAa,UAAU,IAAI;KACnD;IACmB,GAPd,KAAK,GAOS;IAGzB,OAAO,eAAe,MAAM,UAAU,IAAI;GAC5C;EACgB,CAAA,CACN;;AAElB"}
@@ -1,4 +1,3 @@
1
- require("../_virtual/_rolldown/runtime.cjs");
2
1
  let react_jsx_runtime = require("react/jsx-runtime");
3
2
  //#region src/Menu/VerticalDotsIcon.tsx
4
3
  const VerticalDotsIcon = ({ size = 24, width, height, ...props }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalDotsIcon.cjs","names":[],"sources":["../../src/Menu/VerticalDotsIcon.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\n// Default Icon for Menu button\nconst VerticalDotsIcon = ({\n size = 24,\n width,\n height,\n ...props\n}: SVGProps<SVGSVGElement> & { size?: number }) => {\n return (\n <svg\n aria-hidden=\"true\"\n fill=\"none\"\n focusable=\"false\"\n height={size ?? height}\n role=\"presentation\"\n viewBox=\"0 0 24 24\"\n width={size ?? width}\n {...props}\n >\n <path\n d=\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default VerticalDotsIcon;\n"],"mappings":";;;AAGA,MAAM,oBAAoB,EACxB,OAAO,IACP,OACA,QACA,GAAG,YAC8C;CACjD,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,eAAY;EACZ,MAAK;EACL,WAAU;EACV,QAAQ,QAAQ;EAChB,MAAK;EACL,SAAQ;EACR,OAAO,QAAQ;EACf,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"VerticalDotsIcon.cjs","names":[],"sources":["../../src/Menu/VerticalDotsIcon.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\n// Default Icon for Menu button\nconst VerticalDotsIcon = ({\n size = 24,\n width,\n height,\n ...props\n}: SVGProps<SVGSVGElement> & { size?: number }) => {\n return (\n <svg\n aria-hidden=\"true\"\n fill=\"none\"\n focusable=\"false\"\n height={size ?? height}\n role=\"presentation\"\n viewBox=\"0 0 24 24\"\n width={size ?? width}\n {...props}\n >\n <path\n d=\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default VerticalDotsIcon;\n"],"mappings":";;AAGA,MAAM,oBAAoB,EACxB,OAAO,IACP,OACA,QACA,GAAG,YAC8C;CACjD,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,eAAY;EACZ,MAAK;EACL,WAAU;EACV,QAAQ,QAAQ;EAChB,MAAK;EACL,SAAQ;EACR,OAAO,QAAQ;EACf,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAAC,QAAD;GACE,GAAE;GACF,MAAK;EACN,CAAA;CACE,CAAA;AAET"}
@@ -1,4 +1,3 @@
1
- require("../_virtual/_rolldown/runtime.cjs");
2
1
  let _fuf_stack_pixel_utils = require("@fuf-stack/pixel-utils");
3
2
  let react_jsx_runtime = require("react/jsx-runtime");
4
3
  let _heroui_modal = require("@heroui/modal");
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.cjs","names":["HeroModal","HeroModalContent","HeroModalHeader","HeroModalBody","HeroModalFooter"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ModalProps as HeroModalProps } from '@heroui/modal';\nimport type { ReactNode } from 'react';\n\nimport {\n Modal as HeroModal,\n ModalBody as HeroModalBody,\n ModalContent as HeroModalContent,\n ModalFooter as HeroModalFooter,\n ModalHeader as HeroModalHeader,\n} from '@heroui/modal';\n\nimport {\n isTestEnvironment,\n tv,\n variantsToClassNames,\n} from '@fuf-stack/pixel-utils';\n\n// modal variants\nexport const modalVariants = tv({\n slots: {\n backdrop: '',\n base: '',\n body: 'py-4',\n closeButton: '',\n footer: 'border-t border-t-divider',\n header: 'border-b border-b-divider',\n wrapper: '',\n },\n variants: {\n size: {\n sm: { base: 'max-w-sm' },\n md: { base: 'max-w-md' },\n lg: { base: 'max-w-lg' },\n xl: { base: 'max-w-5xl' },\n full: { base: 'h-[80dvh] max-w-full' },\n },\n },\n});\n\ntype VariantProps = TVProps<typeof modalVariants>;\ntype ClassName = TVClassName<typeof modalVariants>;\n\nexport interface ModalProps extends VariantProps {\n /** modal body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /**\n * Disable animations completely. Defaults to `true` in test environments so\n * snapshots are deterministic (the open/close opacity tween otherwise\n * captures a random mid-animation frame).\n */\n disableAnimation?: boolean;\n /** modal footer */\n footer?: ReactNode;\n /** modal header */\n header?: ReactNode;\n /** open state (controlled) */\n isOpen: boolean;\n /** close event handler */\n onClose: () => void;\n /** The container element in which the overlay portal will be placed */\n portalContainer?: HeroModalProps['portalContainer'];\n /** modal size */\n size?: VariantProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Modal component based on [HeroUI Modal](https://www.heroui.com//docs/components/modal)\n */\nconst Modal = ({\n children = null,\n className = undefined,\n disableAnimation = isTestEnvironment(),\n footer = undefined,\n header = undefined,\n isOpen,\n onClose,\n portalContainer = undefined,\n size = 'md',\n testId = undefined,\n}: ModalProps) => {\n // classNames from slots\n const variants = modalVariants({ size });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <HeroModal\n backdrop=\"opaque\"\n classNames={classNames}\n data-testid={testId}\n disableAnimation={disableAnimation}\n isOpen={isOpen}\n onClose={onClose}\n placement=\"center\"\n portalContainer={portalContainer}\n scrollBehavior=\"inside\"\n >\n <HeroModalContent data-testid={testId ? `modal_${testId}` : 'modal'}>\n {() => {\n return (\n <>\n {header ? <HeroModalHeader>{header}</HeroModalHeader> : null}\n <HeroModalBody id=\"modal_body\">{children}</HeroModalBody>\n {footer ? <HeroModalFooter>{footer}</HeroModalFooter> : null}\n </>\n );\n }}\n </HeroModalContent>\n </HeroModal>\n );\n};\n\nexport default Modal;\n"],"mappings":";;;;;AAmBA,MAAa,iBAAA,GAAA,uBAAA,IAAmB;CAC9B,OAAO;EACL,UAAU;EACV,MAAM;EACN,MAAM;EACN,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,SAAS;CACX;CACA,UAAU,EACR,MAAM;EACJ,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,YAAY;EACxB,MAAM,EAAE,MAAM,uBAAuB;CACvC,EACF;AACF,CAAC;;;;AAmCD,MAAM,SAAS,EACb,WAAW,MACX,YAAY,KAAA,GACZ,oBAAA,GAAA,uBAAA,mBAAqC,GACrC,SAAS,KAAA,GACT,SAAS,KAAA,GACT,QACA,SACA,kBAAkB,KAAA,GAClB,OAAO,MACP,SAAS,KAAA,QACO;CAKhB,OACE,iBAAA,GAAA,kBAAA,KAACA,cAAAA,OAAD;EACE,UAAS;EACT,aAAA,GAAA,uBAAA,sBANa,cAAc,EAAE,KAAK,CACS,GAAG,WAAW,MAKpC;EACrB,eAAa;EACK;EACV;EACC;EACT,WAAU;EACO;EACjB,gBAAe;YAEf,iBAAA,GAAA,kBAAA,KAACC,cAAAA,cAAD;GAAkB,eAAa,SAAS,SAAS,WAAW;mBACnD;IACL,OACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;KACG,SAAS,iBAAA,GAAA,kBAAA,KAACC,cAAAA,aAAD,EAAA,UAAkB,OAAwB,CAAA,IAAI;KACxD,iBAAA,GAAA,kBAAA,KAACC,cAAAA,WAAD;MAAe,IAAG;MAAc;KAAwB,CAAA;KACvD,SAAS,iBAAA,GAAA,kBAAA,KAACC,cAAAA,aAAD,EAAA,UAAkB,OAAwB,CAAA,IAAI;IACxD,EAAA,CAAA;GAEN;EACgB,CAAA;CACT,CAAA;AAEf"}
1
+ {"version":3,"file":"Modal.cjs","names":["HeroModal","HeroModalContent","HeroModalHeader","HeroModalBody","HeroModalFooter"],"sources":["../../src/Modal/Modal.tsx"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ModalProps as HeroModalProps } from '@heroui/modal';\nimport type { ReactNode } from 'react';\n\nimport {\n Modal as HeroModal,\n ModalBody as HeroModalBody,\n ModalContent as HeroModalContent,\n ModalFooter as HeroModalFooter,\n ModalHeader as HeroModalHeader,\n} from '@heroui/modal';\n\nimport {\n isTestEnvironment,\n tv,\n variantsToClassNames,\n} from '@fuf-stack/pixel-utils';\n\n// modal variants\nexport const modalVariants = tv({\n slots: {\n backdrop: '',\n base: '',\n body: 'py-4',\n closeButton: '',\n footer: 'border-t border-t-divider',\n header: 'border-b border-b-divider',\n wrapper: '',\n },\n variants: {\n size: {\n sm: { base: 'max-w-sm' },\n md: { base: 'max-w-md' },\n lg: { base: 'max-w-lg' },\n xl: { base: 'max-w-5xl' },\n full: { base: 'h-[80dvh] max-w-full' },\n },\n },\n});\n\ntype VariantProps = TVProps<typeof modalVariants>;\ntype ClassName = TVClassName<typeof modalVariants>;\n\nexport interface ModalProps extends VariantProps {\n /** modal body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /**\n * Disable animations completely. Defaults to `true` in test environments so\n * snapshots are deterministic (the open/close opacity tween otherwise\n * captures a random mid-animation frame).\n */\n disableAnimation?: boolean;\n /** modal footer */\n footer?: ReactNode;\n /** modal header */\n header?: ReactNode;\n /** open state (controlled) */\n isOpen: boolean;\n /** close event handler */\n onClose: () => void;\n /** The container element in which the overlay portal will be placed */\n portalContainer?: HeroModalProps['portalContainer'];\n /** modal size */\n size?: VariantProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Modal component based on [HeroUI Modal](https://www.heroui.com//docs/components/modal)\n */\nconst Modal = ({\n children = null,\n className = undefined,\n disableAnimation = isTestEnvironment(),\n footer = undefined,\n header = undefined,\n isOpen,\n onClose,\n portalContainer = undefined,\n size = 'md',\n testId = undefined,\n}: ModalProps) => {\n // classNames from slots\n const variants = modalVariants({ size });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <HeroModal\n backdrop=\"opaque\"\n classNames={classNames}\n data-testid={testId}\n disableAnimation={disableAnimation}\n isOpen={isOpen}\n onClose={onClose}\n placement=\"center\"\n portalContainer={portalContainer}\n scrollBehavior=\"inside\"\n >\n <HeroModalContent data-testid={testId ? `modal_${testId}` : 'modal'}>\n {() => {\n return (\n <>\n {header ? <HeroModalHeader>{header}</HeroModalHeader> : null}\n <HeroModalBody id=\"modal_body\">{children}</HeroModalBody>\n {footer ? <HeroModalFooter>{footer}</HeroModalFooter> : null}\n </>\n );\n }}\n </HeroModalContent>\n </HeroModal>\n );\n};\n\nexport default Modal;\n"],"mappings":";;;;AAmBA,MAAa,iBAAA,GAAA,uBAAA,IAAmB;CAC9B,OAAO;EACL,UAAU;EACV,MAAM;EACN,MAAM;EACN,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,SAAS;CACX;CACA,UAAU,EACR,MAAM;EACJ,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,WAAW;EACvB,IAAI,EAAE,MAAM,YAAY;EACxB,MAAM,EAAE,MAAM,uBAAuB;CACvC,EACF;AACF,CAAC;;;;AAmCD,MAAM,SAAS,EACb,WAAW,MACX,YAAY,KAAA,GACZ,oBAAA,GAAA,uBAAA,mBAAqC,GACrC,SAAS,KAAA,GACT,SAAS,KAAA,GACT,QACA,SACA,kBAAkB,KAAA,GAClB,OAAO,MACP,SAAS,KAAA,QACO;CAKhB,OACE,iBAAA,GAAA,kBAAA,KAACA,cAAAA,OAAD;EACE,UAAS;EACT,aAAA,GAAA,uBAAA,sBANa,cAAc,EAAE,KAAK,CACS,GAAG,WAAW,MAKpC;EACrB,eAAa;EACK;EACV;EACC;EACT,WAAU;EACO;EACjB,gBAAe;YAEf,iBAAA,GAAA,kBAAA,KAACC,cAAAA,cAAD;GAAkB,eAAa,SAAS,SAAS,WAAW;mBACnD;IACL,OACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;KACG,SAAS,iBAAA,GAAA,kBAAA,KAACC,cAAAA,aAAD,EAAA,UAAkB,OAAwB,CAAA,IAAI;KACxD,iBAAA,GAAA,kBAAA,KAACC,cAAAA,WAAD;MAAe,IAAG;MAAc;KAAwB,CAAA;KACvD,SAAS,iBAAA,GAAA,kBAAA,KAACC,cAAAA,aAAD,EAAA,UAAkB,OAAwB,CAAA,IAAI;IACxD,EAAA,CAAA;GAEN;EACgB,CAAA;CACT,CAAA;AAEf"}