asterui 0.12.48 → 0.12.50

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 (201) hide show
  1. package/dist/components/Alert.js +18 -18
  2. package/dist/components/Alert.js.map +1 -1
  3. package/dist/components/Anchor.js +53 -53
  4. package/dist/components/Anchor.js.map +1 -1
  5. package/dist/components/Autocomplete.js +115 -114
  6. package/dist/components/Autocomplete.js.map +1 -1
  7. package/dist/components/Avatar.js +33 -32
  8. package/dist/components/Avatar.js.map +1 -1
  9. package/dist/components/Badge.js +99 -99
  10. package/dist/components/Badge.js.map +1 -1
  11. package/dist/components/Breadcrumb.js +12 -11
  12. package/dist/components/Breadcrumb.js.map +1 -1
  13. package/dist/components/Browser.js +10 -10
  14. package/dist/components/Browser.js.map +1 -1
  15. package/dist/components/Button.js +80 -79
  16. package/dist/components/Button.js.map +1 -1
  17. package/dist/components/Card.d.ts +2 -0
  18. package/dist/components/Card.js +111 -110
  19. package/dist/components/Card.js.map +1 -1
  20. package/dist/components/Carousel.js +59 -59
  21. package/dist/components/Carousel.js.map +1 -1
  22. package/dist/components/Cascader.js +175 -174
  23. package/dist/components/Cascader.js.map +1 -1
  24. package/dist/components/Chat.js +27 -27
  25. package/dist/components/Chat.js.map +1 -1
  26. package/dist/components/Checkbox.js +98 -97
  27. package/dist/components/Checkbox.js.map +1 -1
  28. package/dist/components/Code.js +11 -11
  29. package/dist/components/Code.js.map +1 -1
  30. package/dist/components/Collapse.js +46 -46
  31. package/dist/components/Collapse.js.map +1 -1
  32. package/dist/components/ColorPicker.d.ts +1 -1
  33. package/dist/components/ColorPicker.js +93 -91
  34. package/dist/components/ColorPicker.js.map +1 -1
  35. package/dist/components/Command.d.ts +65 -0
  36. package/dist/components/Command.js +422 -0
  37. package/dist/components/Command.js.map +1 -0
  38. package/dist/components/ConfigProvider.d.ts +1 -1
  39. package/dist/components/ConfigProvider.js +9 -9
  40. package/dist/components/ConfigProvider.js.map +1 -1
  41. package/dist/components/ContextMenu.js +33 -33
  42. package/dist/components/ContextMenu.js.map +1 -1
  43. package/dist/components/CopyButton.js +74 -73
  44. package/dist/components/CopyButton.js.map +1 -1
  45. package/dist/components/Countdown.js +60 -59
  46. package/dist/components/Countdown.js.map +1 -1
  47. package/dist/components/DatePicker.d.ts +1 -1
  48. package/dist/components/DatePicker.js +54 -53
  49. package/dist/components/DatePicker.js.map +1 -1
  50. package/dist/components/Diff.js +10 -10
  51. package/dist/components/Diff.js.map +1 -1
  52. package/dist/components/Divider.js +21 -20
  53. package/dist/components/Divider.js.map +1 -1
  54. package/dist/components/Dock.js +28 -27
  55. package/dist/components/Dock.js.map +1 -1
  56. package/dist/components/Drawer.js +43 -43
  57. package/dist/components/Drawer.js.map +1 -1
  58. package/dist/components/Dropdown.js +127 -127
  59. package/dist/components/Dropdown.js.map +1 -1
  60. package/dist/components/Empty.js +16 -15
  61. package/dist/components/Empty.js.map +1 -1
  62. package/dist/components/Fieldset.js +11 -10
  63. package/dist/components/Fieldset.js.map +1 -1
  64. package/dist/components/FileInput.js +30 -29
  65. package/dist/components/FileInput.js.map +1 -1
  66. package/dist/components/Filter.d.ts +1 -1
  67. package/dist/components/Filter.js +32 -30
  68. package/dist/components/Filter.js.map +1 -1
  69. package/dist/components/FloatButton.js +83 -83
  70. package/dist/components/FloatButton.js.map +1 -1
  71. package/dist/components/Footer.js +14 -13
  72. package/dist/components/Footer.js.map +1 -1
  73. package/dist/components/Form.js +133 -132
  74. package/dist/components/Form.js.map +1 -1
  75. package/dist/components/Hero.js +12 -11
  76. package/dist/components/Hero.js.map +1 -1
  77. package/dist/components/HoverGallery.js +7 -7
  78. package/dist/components/HoverGallery.js.map +1 -1
  79. package/dist/components/Image.js +40 -40
  80. package/dist/components/Image.js.map +1 -1
  81. package/dist/components/Input.js +171 -169
  82. package/dist/components/Input.js.map +1 -1
  83. package/dist/components/InputNumber.js +84 -83
  84. package/dist/components/InputNumber.js.map +1 -1
  85. package/dist/components/Join.js +11 -10
  86. package/dist/components/Join.js.map +1 -1
  87. package/dist/components/Kbd.js +15 -15
  88. package/dist/components/Kbd.js.map +1 -1
  89. package/dist/components/Layout.js +66 -66
  90. package/dist/components/Layout.js.map +1 -1
  91. package/dist/components/List.d.ts +1 -1
  92. package/dist/components/List.js +75 -72
  93. package/dist/components/List.js.map +1 -1
  94. package/dist/components/Loading.d.ts +1 -1
  95. package/dist/components/Loading.js +31 -29
  96. package/dist/components/Loading.js.map +1 -1
  97. package/dist/components/Mask.js +31 -31
  98. package/dist/components/Mask.js.map +1 -1
  99. package/dist/components/Mention.js +61 -61
  100. package/dist/components/Mention.js.map +1 -1
  101. package/dist/components/Menu.js +84 -84
  102. package/dist/components/Menu.js.map +1 -1
  103. package/dist/components/Message.js +30 -29
  104. package/dist/components/Message.js.map +1 -1
  105. package/dist/components/Modal.js +117 -116
  106. package/dist/components/Modal.js.map +1 -1
  107. package/dist/components/MonthCalendar.d.ts +31 -0
  108. package/dist/components/MonthCalendar.js +205 -0
  109. package/dist/components/MonthCalendar.js.map +1 -0
  110. package/dist/components/Navbar.js +25 -25
  111. package/dist/components/Navbar.js.map +1 -1
  112. package/dist/components/Notification.js +56 -55
  113. package/dist/components/Notification.js.map +1 -1
  114. package/dist/components/OTPInput.js +69 -68
  115. package/dist/components/OTPInput.js.map +1 -1
  116. package/dist/components/Pagination.d.ts +1 -1
  117. package/dist/components/Pagination.js +60 -58
  118. package/dist/components/Pagination.js.map +1 -1
  119. package/dist/components/Phone.js +10 -10
  120. package/dist/components/Phone.js.map +1 -1
  121. package/dist/components/Popconfirm.js +60 -60
  122. package/dist/components/Popconfirm.js.map +1 -1
  123. package/dist/components/Progress.js +17 -17
  124. package/dist/components/Progress.js.map +1 -1
  125. package/dist/components/QRCode.js +23 -23
  126. package/dist/components/QRCode.js.map +1 -1
  127. package/dist/components/RadialProgress.js +17 -17
  128. package/dist/components/RadialProgress.js.map +1 -1
  129. package/dist/components/Radio.js +41 -40
  130. package/dist/components/Radio.js.map +1 -1
  131. package/dist/components/Range.d.ts +1 -1
  132. package/dist/components/Range.js +39 -37
  133. package/dist/components/Range.js.map +1 -1
  134. package/dist/components/Rating.js +79 -78
  135. package/dist/components/Rating.js.map +1 -1
  136. package/dist/components/ResponsiveDrawer.js +27 -27
  137. package/dist/components/ResponsiveDrawer.js.map +1 -1
  138. package/dist/components/RichTextEditor.d.ts +32 -0
  139. package/dist/components/RichTextEditor.js +335 -0
  140. package/dist/components/RichTextEditor.js.map +1 -0
  141. package/dist/components/Segmented.d.ts +1 -1
  142. package/dist/components/Segmented.js +48 -46
  143. package/dist/components/Segmented.js.map +1 -1
  144. package/dist/components/Select.js +55 -54
  145. package/dist/components/Select.js.map +1 -1
  146. package/dist/components/Skeleton.js +9 -9
  147. package/dist/components/Skeleton.js.map +1 -1
  148. package/dist/components/Splitter.js +93 -93
  149. package/dist/components/Splitter.js.map +1 -1
  150. package/dist/components/Stat.js +17 -16
  151. package/dist/components/Stat.js.map +1 -1
  152. package/dist/components/Status.js +29 -29
  153. package/dist/components/Status.js.map +1 -1
  154. package/dist/components/Steps.js +61 -61
  155. package/dist/components/Steps.js.map +1 -1
  156. package/dist/components/Table.js +256 -256
  157. package/dist/components/Table.js.map +1 -1
  158. package/dist/components/Tabs.js +65 -65
  159. package/dist/components/Tabs.js.map +1 -1
  160. package/dist/components/Tag.js +147 -147
  161. package/dist/components/Tag.js.map +1 -1
  162. package/dist/components/TextRotate.js +6 -6
  163. package/dist/components/TextRotate.js.map +1 -1
  164. package/dist/components/Textarea.js +35 -34
  165. package/dist/components/Textarea.js.map +1 -1
  166. package/dist/components/ThemeController.d.ts +1 -1
  167. package/dist/components/ThemeController.js +71 -68
  168. package/dist/components/ThemeController.js.map +1 -1
  169. package/dist/components/TimePicker.d.ts +1 -1
  170. package/dist/components/TimePicker.js +133 -129
  171. package/dist/components/TimePicker.js.map +1 -1
  172. package/dist/components/Timeline.js +79 -79
  173. package/dist/components/Timeline.js.map +1 -1
  174. package/dist/components/Toggle.js +33 -32
  175. package/dist/components/Toggle.js.map +1 -1
  176. package/dist/components/Tooltip.js +25 -25
  177. package/dist/components/Tooltip.js.map +1 -1
  178. package/dist/components/Tour.js +126 -126
  179. package/dist/components/Tour.js.map +1 -1
  180. package/dist/components/Transfer.js +93 -92
  181. package/dist/components/Transfer.js.map +1 -1
  182. package/dist/components/Tree.js +200 -200
  183. package/dist/components/Tree.js.map +1 -1
  184. package/dist/components/TreeSelect.js +255 -254
  185. package/dist/components/TreeSelect.js.map +1 -1
  186. package/dist/components/Typography.js +71 -70
  187. package/dist/components/Typography.js.map +1 -1
  188. package/dist/components/Upload.js +81 -81
  189. package/dist/components/Upload.js.map +1 -1
  190. package/dist/components/WeekCalendar.d.ts +35 -0
  191. package/dist/components/WeekCalendar.js +204 -0
  192. package/dist/components/WeekCalendar.js.map +1 -0
  193. package/dist/components/Window.js +7 -7
  194. package/dist/components/Window.js.map +1 -1
  195. package/dist/editor.d.ts +1 -0
  196. package/dist/editor.js +5 -0
  197. package/dist/editor.js.map +1 -0
  198. package/dist/index.d.ts +6 -0
  199. package/dist/index.js +221 -215
  200. package/dist/index.js.map +1 -1
  201. package/package.json +30 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../src/components/Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useCallback, useId } from 'react'\n\nexport type MenuMode = 'vertical' | 'horizontal' | 'inline'\nexport type MenuSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface MenuItem {\n key: string\n label: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n children?: MenuItem[]\n divider?: boolean\n title?: boolean // For section titles\n}\n\nexport interface MenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n /** Menu items (compound pattern) */\n children?: React.ReactNode\n /** Menu items (data-driven pattern) */\n items?: MenuItem[]\n /** Menu display mode */\n mode?: MenuMode\n /** Menu size */\n size?: MenuSize\n /** Controlled selected keys */\n selectedKeys?: string[]\n /** Default selected keys (uncontrolled) */\n defaultSelectedKeys?: string[]\n /** Controlled open submenu keys */\n openKeys?: string[]\n /** Default open submenu keys (uncontrolled) */\n defaultOpenKeys?: string[]\n /** Callback when item is selected */\n onSelect?: (key: string) => void\n /** Callback when submenu open state changes */\n onOpenChange?: (openKeys: string[]) => void\n}\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLAnchorElement>, 'onClick'> {\n children: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n onClick?: () => void\n /** @deprecated Use key and selectedKeys instead */\n active?: boolean\n /** @internal */\n _key?: string\n}\n\nexport interface MenuSubMenuProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'title'> {\n children: React.ReactNode\n /** Submenu label */\n label?: React.ReactNode\n /** Submenu title (alias for label) */\n title?: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n /** @internal */\n _key?: string\n}\n\nexport interface MenuTitleProps extends React.HTMLAttributes<HTMLLIElement> {\n children: React.ReactNode\n}\n\nexport interface MenuDividerProps extends React.HTMLAttributes<HTMLLIElement> {}\n\ninterface MenuContextValue {\n mode: MenuMode\n selectedKeys: string[]\n openKeys: string[]\n onSelect: (key: string) => void\n onToggleOpen: (key: string) => void\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null)\n\nfunction useMenuContext() {\n const context = useContext(MenuContext)\n if (!context) {\n throw new Error('Menu components must be used within a Menu')\n }\n return context\n}\n\n// Internal component for rendering data-driven menu items\nfunction renderMenuItem(item: MenuItem, onSelect: (key: string) => void, selectedKeys: string[], openKeys: string[], onToggleOpen: (key: string) => void): React.ReactNode {\n if (item.divider) {\n return <MenuDivider key={item.key} />\n }\n\n if (item.title) {\n return <MenuTitle key={item.key}>{item.label}</MenuTitle>\n }\n\n if (item.children && item.children.length > 0) {\n return (\n <MenuSubMenu key={item.key} _key={item.key} label={item.label} icon={item.icon} disabled={item.disabled}>\n {item.children.map((child) => renderMenuItem(child, onSelect, selectedKeys, openKeys, onToggleOpen))}\n </MenuSubMenu>\n )\n }\n\n return (\n <MenuItem key={item.key} _key={item.key} icon={item.icon} disabled={item.disabled}>\n {item.label}\n </MenuItem>\n )\n}\n\nfunction MenuRoot({\n children,\n items,\n mode = 'vertical',\n size,\n selectedKeys: controlledSelectedKeys,\n defaultSelectedKeys = [],\n openKeys: controlledOpenKeys,\n defaultOpenKeys = [],\n onSelect,\n onOpenChange,\n className = '',\n ...rest\n}: MenuProps) {\n const [internalSelectedKeys, setInternalSelectedKeys] = useState<string[]>(defaultSelectedKeys)\n const [internalOpenKeys, setInternalOpenKeys] = useState<string[]>(defaultOpenKeys)\n\n const selectedKeys = controlledSelectedKeys ?? internalSelectedKeys\n const openKeys = controlledOpenKeys ?? internalOpenKeys\n\n const handleSelect = useCallback(\n (key: string) => {\n if (controlledSelectedKeys === undefined) {\n setInternalSelectedKeys([key])\n }\n onSelect?.(key)\n },\n [controlledSelectedKeys, onSelect]\n )\n\n const handleToggleOpen = useCallback(\n (key: string) => {\n const newOpenKeys = openKeys.includes(key)\n ? openKeys.filter((k) => k !== key)\n : [...openKeys, key]\n\n if (controlledOpenKeys === undefined) {\n setInternalOpenKeys(newOpenKeys)\n }\n onOpenChange?.(newOpenKeys)\n },\n [openKeys, controlledOpenKeys, onOpenChange]\n )\n\n const modeClasses: Record<MenuMode, string> = {\n vertical: 'menu-vertical',\n horizontal: 'menu-horizontal',\n inline: 'menu-vertical',\n }\n\n const sizeClasses: Record<MenuSize, string> = {\n xs: 'menu-xs',\n sm: 'menu-sm',\n md: 'menu-md',\n lg: 'menu-lg',\n xl: 'menu-xl',\n }\n\n const menuClasses = ['menu', modeClasses[mode], size && sizeClasses[size], className].filter(Boolean).join(' ')\n\n const contextValue = {\n mode,\n selectedKeys,\n openKeys,\n onSelect: handleSelect,\n onToggleOpen: handleToggleOpen,\n }\n\n // Clone children to extract keys\n const cloneChildrenWithKeys = (children: React.ReactNode): React.ReactNode => {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const childKey = child.key != null ? String(child.key) : undefined\n if (child.type === MenuItem || child.type === MenuSubMenu) {\n return React.cloneElement(child as React.ReactElement<any>, { _key: childKey })\n }\n }\n return child\n })\n }\n\n // Render data-driven items if provided\n const content = items && items.length > 0\n ? items.map((item) => renderMenuItem(item, handleSelect, selectedKeys, openKeys, handleToggleOpen))\n : cloneChildrenWithKeys(children)\n\n return (\n <MenuContext.Provider value={contextValue}>\n <ul className={menuClasses} {...rest}>{content}</ul>\n </MenuContext.Provider>\n )\n}\n\nfunction MenuItem({\n children,\n icon,\n disabled = false,\n onClick,\n active,\n className = '',\n _key,\n ...rest\n}: MenuItemProps) {\n const context = useContext(MenuContext)\n\n // Support both old active prop and new key-based selection\n const isSelected = _key && context ? context.selectedKeys.includes(_key) : active\n\n const handleClick = () => {\n if (disabled) return\n if (_key && context) {\n context.onSelect(_key)\n }\n onClick?.()\n }\n\n const itemClasses = [\n isSelected && 'active bg-primary text-primary-content',\n disabled && 'disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <li>\n <a\n className={itemClasses}\n onClick={handleClick}\n aria-disabled={disabled}\n role=\"menuitem\"\n data-state={isSelected ? 'active' : 'inactive'}\n {...rest}\n >\n {icon && <span className=\"menu-icon\">{icon}</span>}\n {children}\n </a>\n </li>\n )\n}\n\nfunction MenuSubMenu({\n children,\n label,\n title,\n icon,\n disabled = false,\n className = '',\n _key,\n ...rest\n}: MenuSubMenuProps) {\n const context = useMenuContext()\n const isOpen = _key ? context.openKeys.includes(_key) : false\n const submenuId = useId()\n\n // Support both label and title (title as alias for backwards compatibility)\n const displayLabel = label ?? title\n\n const handleToggle = () => {\n if (disabled || !_key) return\n context.onToggleOpen(_key)\n }\n\n const submenuClasses = [disabled && 'disabled', className].filter(Boolean).join(' ')\n\n // For inline mode, use collapsible details/summary\n if (context.mode === 'inline') {\n return (\n <li className={submenuClasses} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <details open={isOpen}>\n <summary\n onClick={(e) => {\n e.preventDefault()\n handleToggle()\n }}\n aria-expanded={isOpen}\n aria-controls={submenuId}\n aria-disabled={disabled}\n >\n {icon && <span className=\"menu-icon\">{icon}</span>}\n {displayLabel}\n </summary>\n <ul id={submenuId} role=\"menu\">\n {children}\n </ul>\n </details>\n </li>\n )\n }\n\n // For vertical/horizontal, use nested menu (dropdown style)\n return (\n <li className={submenuClasses} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <details open={isOpen}>\n <summary\n onClick={(e) => {\n e.preventDefault()\n handleToggle()\n }}\n aria-expanded={isOpen}\n aria-controls={submenuId}\n aria-disabled={disabled}\n >\n {icon && <span className=\"menu-icon\">{icon}</span>}\n {displayLabel}\n </summary>\n <ul id={submenuId} role=\"menu\">\n {children}\n </ul>\n </details>\n </li>\n )\n}\n\nfunction MenuTitle({ children, className = '', ...rest }: MenuTitleProps) {\n const titleClasses = ['menu-title', className].filter(Boolean).join(' ')\n\n return <li className={titleClasses} {...rest}>{children}</li>\n}\n\nfunction MenuDivider({ className = '', ...rest }: MenuDividerProps) {\n const dividerClasses = ['border-t border-base-300 my-1', className].filter(Boolean).join(' ')\n\n return <li className={dividerClasses} role=\"separator\" {...rest} />\n}\n\nexport const Menu = Object.assign(MenuRoot, {\n Item: MenuItem,\n SubMenu: MenuSubMenu,\n Title: MenuTitle,\n Divider: MenuDivider,\n})\n"],"names":["MenuContext","createContext","useMenuContext","context","useContext","renderMenuItem","item","onSelect","selectedKeys","openKeys","onToggleOpen","jsx","MenuDivider","MenuTitle","MenuSubMenu","child","MenuItem","MenuRoot","children","items","mode","size","controlledSelectedKeys","defaultSelectedKeys","controlledOpenKeys","defaultOpenKeys","onOpenChange","className","rest","internalSelectedKeys","setInternalSelectedKeys","useState","internalOpenKeys","setInternalOpenKeys","handleSelect","useCallback","key","handleToggleOpen","newOpenKeys","k","modeClasses","sizeClasses","menuClasses","contextValue","cloneChildrenWithKeys","React","childKey","content","icon","disabled","onClick","active","_key","isSelected","handleClick","itemClasses","jsxs","label","title","isOpen","submenuId","useId","displayLabel","handleToggle","submenuClasses","e","titleClasses","dividerClasses","Menu"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sources":["../../src/components/Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useCallback, useId } from 'react'\n\n// DaisyUI classes\nconst dMenu = 'menu'\nconst dMenuVertical = 'menu-vertical'\nconst dMenuHorizontal = 'menu-horizontal'\nconst dMenuXs = 'menu-xs'\nconst dMenuSm = 'menu-sm'\nconst dMenuMd = 'menu-md'\nconst dMenuLg = 'menu-lg'\nconst dMenuXl = 'menu-xl'\nconst dMenuIcon = 'menu-icon'\nconst dMenuTitle = 'menu-title'\n\nexport type MenuMode = 'vertical' | 'horizontal' | 'inline'\nexport type MenuSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface MenuItem {\n key: string\n label: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n children?: MenuItem[]\n divider?: boolean\n title?: boolean // For section titles\n}\n\nexport interface MenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n /** Menu items (compound pattern) */\n children?: React.ReactNode\n /** Menu items (data-driven pattern) */\n items?: MenuItem[]\n /** Menu display mode */\n mode?: MenuMode\n /** Menu size */\n size?: MenuSize\n /** Controlled selected keys */\n selectedKeys?: string[]\n /** Default selected keys (uncontrolled) */\n defaultSelectedKeys?: string[]\n /** Controlled open submenu keys */\n openKeys?: string[]\n /** Default open submenu keys (uncontrolled) */\n defaultOpenKeys?: string[]\n /** Callback when item is selected */\n onSelect?: (key: string) => void\n /** Callback when submenu open state changes */\n onOpenChange?: (openKeys: string[]) => void\n}\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLAnchorElement>, 'onClick'> {\n children: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n onClick?: () => void\n /** @deprecated Use key and selectedKeys instead */\n active?: boolean\n /** @internal */\n _key?: string\n}\n\nexport interface MenuSubMenuProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'title'> {\n children: React.ReactNode\n /** Submenu label */\n label?: React.ReactNode\n /** Submenu title (alias for label) */\n title?: React.ReactNode\n icon?: React.ReactNode\n disabled?: boolean\n /** @internal */\n _key?: string\n}\n\nexport interface MenuTitleProps extends React.HTMLAttributes<HTMLLIElement> {\n children: React.ReactNode\n}\n\nexport interface MenuDividerProps extends React.HTMLAttributes<HTMLLIElement> {}\n\ninterface MenuContextValue {\n mode: MenuMode\n selectedKeys: string[]\n openKeys: string[]\n onSelect: (key: string) => void\n onToggleOpen: (key: string) => void\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null)\n\nfunction useMenuContext() {\n const context = useContext(MenuContext)\n if (!context) {\n throw new Error('Menu components must be used within a Menu')\n }\n return context\n}\n\n// Internal component for rendering data-driven menu items\nfunction renderMenuItem(item: MenuItem, onSelect: (key: string) => void, selectedKeys: string[], openKeys: string[], onToggleOpen: (key: string) => void): React.ReactNode {\n if (item.divider) {\n return <MenuDivider key={item.key} />\n }\n\n if (item.title) {\n return <MenuTitle key={item.key}>{item.label}</MenuTitle>\n }\n\n if (item.children && item.children.length > 0) {\n return (\n <MenuSubMenu key={item.key} _key={item.key} label={item.label} icon={item.icon} disabled={item.disabled}>\n {item.children.map((child) => renderMenuItem(child, onSelect, selectedKeys, openKeys, onToggleOpen))}\n </MenuSubMenu>\n )\n }\n\n return (\n <MenuItem key={item.key} _key={item.key} icon={item.icon} disabled={item.disabled}>\n {item.label}\n </MenuItem>\n )\n}\n\nfunction MenuRoot({\n children,\n items,\n mode = 'vertical',\n size,\n selectedKeys: controlledSelectedKeys,\n defaultSelectedKeys = [],\n openKeys: controlledOpenKeys,\n defaultOpenKeys = [],\n onSelect,\n onOpenChange,\n className = '',\n ...rest\n}: MenuProps) {\n const [internalSelectedKeys, setInternalSelectedKeys] = useState<string[]>(defaultSelectedKeys)\n const [internalOpenKeys, setInternalOpenKeys] = useState<string[]>(defaultOpenKeys)\n\n const selectedKeys = controlledSelectedKeys ?? internalSelectedKeys\n const openKeys = controlledOpenKeys ?? internalOpenKeys\n\n const handleSelect = useCallback(\n (key: string) => {\n if (controlledSelectedKeys === undefined) {\n setInternalSelectedKeys([key])\n }\n onSelect?.(key)\n },\n [controlledSelectedKeys, onSelect]\n )\n\n const handleToggleOpen = useCallback(\n (key: string) => {\n const newOpenKeys = openKeys.includes(key)\n ? openKeys.filter((k) => k !== key)\n : [...openKeys, key]\n\n if (controlledOpenKeys === undefined) {\n setInternalOpenKeys(newOpenKeys)\n }\n onOpenChange?.(newOpenKeys)\n },\n [openKeys, controlledOpenKeys, onOpenChange]\n )\n\n const modeClasses: Record<MenuMode, string> = {\n vertical: dMenuVertical,\n horizontal: dMenuHorizontal,\n inline: dMenuVertical,\n }\n\n const sizeClasses: Record<MenuSize, string> = {\n xs: dMenuXs,\n sm: dMenuSm,\n md: dMenuMd,\n lg: dMenuLg,\n xl: dMenuXl,\n }\n\n const menuClasses = [dMenu, modeClasses[mode], size && sizeClasses[size], className].filter(Boolean).join(' ')\n\n const contextValue = {\n mode,\n selectedKeys,\n openKeys,\n onSelect: handleSelect,\n onToggleOpen: handleToggleOpen,\n }\n\n // Clone children to extract keys\n const cloneChildrenWithKeys = (children: React.ReactNode): React.ReactNode => {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const childKey = child.key != null ? String(child.key) : undefined\n if (child.type === MenuItem || child.type === MenuSubMenu) {\n return React.cloneElement(child as React.ReactElement<any>, { _key: childKey })\n }\n }\n return child\n })\n }\n\n // Render data-driven items if provided\n const content = items && items.length > 0\n ? items.map((item) => renderMenuItem(item, handleSelect, selectedKeys, openKeys, handleToggleOpen))\n : cloneChildrenWithKeys(children)\n\n return (\n <MenuContext.Provider value={contextValue}>\n <ul className={menuClasses} {...rest}>{content}</ul>\n </MenuContext.Provider>\n )\n}\n\nfunction MenuItem({\n children,\n icon,\n disabled = false,\n onClick,\n active,\n className = '',\n _key,\n ...rest\n}: MenuItemProps) {\n const context = useContext(MenuContext)\n\n // Support both old active prop and new key-based selection\n const isSelected = _key && context ? context.selectedKeys.includes(_key) : active\n\n const handleClick = () => {\n if (disabled) return\n if (_key && context) {\n context.onSelect(_key)\n }\n onClick?.()\n }\n\n const itemClasses = [\n isSelected && 'active bg-primary text-primary-content',\n disabled && 'disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <li>\n <a\n className={itemClasses}\n onClick={handleClick}\n aria-disabled={disabled}\n role=\"menuitem\"\n data-state={isSelected ? 'active' : 'inactive'}\n {...rest}\n >\n {icon && <span className={dMenuIcon}>{icon}</span>}\n {children}\n </a>\n </li>\n )\n}\n\nfunction MenuSubMenu({\n children,\n label,\n title,\n icon,\n disabled = false,\n className = '',\n _key,\n ...rest\n}: MenuSubMenuProps) {\n const context = useMenuContext()\n const isOpen = _key ? context.openKeys.includes(_key) : false\n const submenuId = useId()\n\n // Support both label and title (title as alias for backwards compatibility)\n const displayLabel = label ?? title\n\n const handleToggle = () => {\n if (disabled || !_key) return\n context.onToggleOpen(_key)\n }\n\n const submenuClasses = [disabled && 'disabled', className].filter(Boolean).join(' ')\n\n // For inline mode, use collapsible details/summary\n if (context.mode === 'inline') {\n return (\n <li className={submenuClasses} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <details open={isOpen}>\n <summary\n onClick={(e) => {\n e.preventDefault()\n handleToggle()\n }}\n aria-expanded={isOpen}\n aria-controls={submenuId}\n aria-disabled={disabled}\n >\n {icon && <span className={dMenuIcon}>{icon}</span>}\n {displayLabel}\n </summary>\n <ul id={submenuId} role=\"menu\">\n {children}\n </ul>\n </details>\n </li>\n )\n }\n\n // For vertical/horizontal, use nested menu (dropdown style)\n return (\n <li className={submenuClasses} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n <details open={isOpen}>\n <summary\n onClick={(e) => {\n e.preventDefault()\n handleToggle()\n }}\n aria-expanded={isOpen}\n aria-controls={submenuId}\n aria-disabled={disabled}\n >\n {icon && <span className={dMenuIcon}>{icon}</span>}\n {displayLabel}\n </summary>\n <ul id={submenuId} role=\"menu\">\n {children}\n </ul>\n </details>\n </li>\n )\n}\n\nfunction MenuTitle({ children, className = '', ...rest }: MenuTitleProps) {\n const titleClasses = [dMenuTitle, className].filter(Boolean).join(' ')\n\n return <li className={titleClasses} {...rest}>{children}</li>\n}\n\nfunction MenuDivider({ className = '', ...rest }: MenuDividerProps) {\n const dividerClasses = ['border-t border-base-300 my-1', className].filter(Boolean).join(' ')\n\n return <li className={dividerClasses} role=\"separator\" {...rest} />\n}\n\nexport const Menu = Object.assign(MenuRoot, {\n Item: MenuItem,\n SubMenu: MenuSubMenu,\n Title: MenuTitle,\n Divider: MenuDivider,\n})\n"],"names":["dMenu","dMenuVertical","dMenuHorizontal","dMenuXs","dMenuSm","dMenuMd","dMenuLg","dMenuXl","dMenuIcon","dMenuTitle","MenuContext","createContext","useMenuContext","context","useContext","renderMenuItem","item","onSelect","selectedKeys","openKeys","onToggleOpen","jsx","MenuDivider","MenuTitle","MenuSubMenu","child","MenuItem","MenuRoot","children","items","mode","size","controlledSelectedKeys","defaultSelectedKeys","controlledOpenKeys","defaultOpenKeys","onOpenChange","className","rest","internalSelectedKeys","setInternalSelectedKeys","useState","internalOpenKeys","setInternalOpenKeys","handleSelect","useCallback","key","handleToggleOpen","newOpenKeys","k","modeClasses","sizeClasses","menuClasses","contextValue","cloneChildrenWithKeys","React","childKey","content","icon","disabled","onClick","active","_key","isSelected","handleClick","itemClasses","jsxs","label","title","isOpen","submenuId","useId","displayLabel","handleToggle","submenuClasses","e","titleClasses","dividerClasses","Menu"],"mappings":"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"}
@@ -1,56 +1,57 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { notification as a } from "./Notification.js";
3
- class r {
4
- success(e, n) {
5
- return a.open({
6
- message: e,
2
+ import { notification as o } from "./Notification.js";
3
+ const r = "loading", t = "loading-spinner", i = "loading-sm";
4
+ class c {
5
+ success(n, e) {
6
+ return o.open({
7
+ message: n,
7
8
  type: "success",
8
9
  variant: "compact",
9
- ...n
10
+ ...e
10
11
  });
11
12
  }
12
- error(e, n) {
13
- return a.open({
14
- message: e,
13
+ error(n, e) {
14
+ return o.open({
15
+ message: n,
15
16
  type: "error",
16
17
  variant: "compact",
17
- ...n
18
+ ...e
18
19
  });
19
20
  }
20
- info(e, n) {
21
- return a.open({
22
- message: e,
21
+ info(n, e) {
22
+ return o.open({
23
+ message: n,
23
24
  type: "info",
24
25
  variant: "compact",
25
- ...n
26
+ ...e
26
27
  });
27
28
  }
28
- warning(e, n) {
29
- return a.open({
30
- message: e,
29
+ warning(n, e) {
30
+ return o.open({
31
+ message: n,
31
32
  type: "warning",
32
33
  variant: "compact",
33
- ...n
34
+ ...e
34
35
  });
35
36
  }
36
- loading(e, n) {
37
- const o = /* @__PURE__ */ s("span", { className: "loading loading-spinner loading-sm" });
38
- return a.open({
39
- message: e,
37
+ loading(n, e) {
38
+ const a = /* @__PURE__ */ s("span", { className: `${r} ${t} ${i}` });
39
+ return o.open({
40
+ message: n,
40
41
  type: "info",
41
42
  variant: "compact",
42
43
  duration: 0,
43
- icon: o,
44
- ...n
44
+ icon: a,
45
+ ...e
45
46
  });
46
47
  }
47
- destroy(e) {
48
- e ? a.close(e) : a.destroy();
48
+ destroy(n) {
49
+ n ? o.close(n) : o.destroy();
49
50
  }
50
51
  }
51
- const p = new r();
52
+ const d = new c();
52
53
  export {
53
- r as MessageManager,
54
- p as message
54
+ c as MessageManager,
55
+ d as message
55
56
  };
56
57
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../src/components/Message.tsx"],"sourcesContent":["import React from 'react'\nimport { notification } from './Notification'\n\nexport interface MessageConfig {\n duration?: number\n key?: string\n icon?: React.ReactNode\n className?: string\n style?: React.CSSProperties\n 'data-testid'?: string\n onClick?: () => void\n onClose?: () => void\n}\n\nexport class MessageManager {\n success(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'success',\n variant: 'compact',\n ...config,\n })\n }\n\n error(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'error',\n variant: 'compact',\n ...config,\n })\n }\n\n info(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'info',\n variant: 'compact',\n ...config,\n })\n }\n\n warning(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'warning',\n variant: 'compact',\n ...config,\n })\n }\n\n loading(content: React.ReactNode, config?: MessageConfig) {\n const loadingIcon = (\n <span className=\"loading loading-spinner loading-sm\" />\n )\n return notification.open({\n message: content,\n type: 'info',\n variant: 'compact',\n duration: 0,\n icon: loadingIcon,\n ...config,\n })\n }\n\n destroy(id?: string) {\n if (id) {\n notification.close(id)\n } else {\n notification.destroy()\n }\n }\n}\n\nexport const message = new MessageManager()\n"],"names":["MessageManager","content","config","notification","loadingIcon","jsx","id","message"],"mappings":";;AAcO,MAAMA,EAAe;AAAA,EAC1B,QAAQC,GAA0BC,GAAwB;AACxD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,MAAMD,GAA0BC,GAAwB;AACtD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,KAAKD,GAA0BC,GAAwB;AACrD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQD,GAA0BC,GAAwB;AACxD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQD,GAA0BC,GAAwB;AACxD,UAAME,IACJ,gBAAAC,EAAC,QAAA,EAAK,WAAU,qCAAA,CAAqC;AAEvD,WAAOF,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAMG;AAAA,MACN,GAAGF;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQI,GAAa;AACnB,IAAIA,IACFH,EAAa,MAAMG,CAAE,IAErBH,EAAa,QAAA;AAAA,EAEjB;AACF;AAEO,MAAMI,IAAU,IAAIP,EAAA;"}
1
+ {"version":3,"file":"Message.js","sources":["../../src/components/Message.tsx"],"sourcesContent":["import React from 'react'\nimport { notification } from './Notification'\n\n// DaisyUI classes\nconst dLoading = 'loading'\nconst dLoadingSpinner = 'loading-spinner'\nconst dLoadingSm = 'loading-sm'\n\nexport interface MessageConfig {\n duration?: number\n key?: string\n icon?: React.ReactNode\n className?: string\n style?: React.CSSProperties\n 'data-testid'?: string\n onClick?: () => void\n onClose?: () => void\n}\n\nexport class MessageManager {\n success(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'success',\n variant: 'compact',\n ...config,\n })\n }\n\n error(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'error',\n variant: 'compact',\n ...config,\n })\n }\n\n info(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'info',\n variant: 'compact',\n ...config,\n })\n }\n\n warning(content: React.ReactNode, config?: MessageConfig) {\n return notification.open({\n message: content,\n type: 'warning',\n variant: 'compact',\n ...config,\n })\n }\n\n loading(content: React.ReactNode, config?: MessageConfig) {\n const loadingIcon = (\n <span className={`${dLoading} ${dLoadingSpinner} ${dLoadingSm}`} />\n )\n return notification.open({\n message: content,\n type: 'info',\n variant: 'compact',\n duration: 0,\n icon: loadingIcon,\n ...config,\n })\n }\n\n destroy(id?: string) {\n if (id) {\n notification.close(id)\n } else {\n notification.destroy()\n }\n }\n}\n\nexport const message = new MessageManager()\n"],"names":["dLoading","dLoadingSpinner","dLoadingSm","MessageManager","content","config","notification","loadingIcon","jsx","id","message"],"mappings":";;AAIA,MAAMA,IAAW,WACXC,IAAkB,mBAClBC,IAAa;AAaZ,MAAMC,EAAe;AAAA,EAC1B,QAAQC,GAA0BC,GAAwB;AACxD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,MAAMD,GAA0BC,GAAwB;AACtD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,KAAKD,GAA0BC,GAAwB;AACrD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQD,GAA0BC,GAAwB;AACxD,WAAOC,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,GAAGC;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQD,GAA0BC,GAAwB;AACxD,UAAME,IACJ,gBAAAC,EAAC,QAAA,EAAK,WAAW,GAAGR,CAAQ,IAAIC,CAAe,IAAIC,CAAU,GAAA,CAAI;AAEnE,WAAOI,EAAa,KAAK;AAAA,MACvB,SAASF;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAMG;AAAA,MACN,GAAGF;AAAA,IAAA,CACJ;AAAA,EACH;AAAA,EAEA,QAAQI,GAAa;AACnB,IAAIA,IACFH,EAAa,MAAMG,CAAE,IAErBH,EAAa,QAAA;AAAA,EAEjB;AACF;AAEO,MAAMI,IAAU,IAAIP,EAAA;"}
@@ -1,62 +1,63 @@
1
- import { jsxs as m, jsx as t, Fragment as V } from "react/jsx-runtime";
2
- import M, { useRef as f, useId as I, useEffect as S } from "react";
3
- import { createRoot as X } from "react-dom/client";
1
+ import { jsxs as m, jsx as t, Fragment as oe } from "react/jsx-runtime";
2
+ import $, { useRef as w, useId as z, useEffect as P } from "react";
3
+ import { createRoot as ne } from "react-dom/client";
4
+ const re = "modal", D = "modal-top", K = "modal-middle", F = "modal-bottom", se = "modal-start", le = "modal-end", ae = "modal-box", H = "modal-action", de = "modal-backdrop", b = "btn", T = "btn-primary", q = "btn-error", ce = "alert", ie = "alert-info", me = "alert-success", ue = "alert-warning", he = "alert-error";
4
5
  function u({
5
6
  children: e,
6
- title: r,
7
+ title: n,
7
8
  footer: s,
8
9
  open: l = !1,
9
10
  onOk: a,
10
11
  onCancel: d,
11
- okText: y = "OK",
12
+ okText: C = "OK",
12
13
  cancelText: c = "Cancel",
13
14
  maskClosable: h = !0,
14
15
  closable: p = !0,
15
- position: n,
16
- align: b,
16
+ position: r,
17
+ align: f,
17
18
  width: i,
18
- centered: C,
19
- onClose: g,
20
- initialFocus: k,
21
- alertDialog: A = !1,
22
- className: D = "",
23
- ...K
19
+ centered: g,
20
+ onClose: N,
21
+ initialFocus: v,
22
+ alertDialog: G = !1,
23
+ className: J = "",
24
+ ...Q
24
25
  }) {
25
- const N = f(null), R = f(null), T = f(null), j = f(null), O = f(null), [L, B] = M.useState(!1), $ = I(), E = I(), v = g || d;
26
- S(() => {
27
- const o = N.current;
28
- o && (l ? o.open || (O.current = document.activeElement, o.showModal(), k && setTimeout(() => {
29
- switch (k) {
26
+ const M = w(null), A = w(null), E = w(null), R = w(null), j = w(null), [B, L] = $.useState(!1), O = z(), S = z(), x = N || d;
27
+ P(() => {
28
+ const o = M.current;
29
+ o && (l ? o.open || (j.current = document.activeElement, o.showModal(), v && setTimeout(() => {
30
+ switch (v) {
30
31
  case "ok":
31
- R.current?.focus();
32
+ A.current?.focus();
32
33
  break;
33
34
  case "cancel":
34
- T.current?.focus();
35
+ E.current?.focus();
35
36
  break;
36
37
  case "close":
37
- j.current?.focus();
38
+ R.current?.focus();
38
39
  break;
39
40
  }
40
- }, 0)) : o.open && (o.close(), O.current?.focus()));
41
- }, [l, k]), S(() => {
42
- const o = N.current;
41
+ }, 0)) : o.open && (o.close(), j.current?.focus()));
42
+ }, [l, v]), P(() => {
43
+ const o = M.current;
43
44
  if (!o) return;
44
- const x = () => {
45
- v?.();
45
+ const y = () => {
46
+ x?.();
46
47
  };
47
- return o.addEventListener("close", x), () => {
48
- o.removeEventListener("close", x);
48
+ return o.addEventListener("close", y), () => {
49
+ o.removeEventListener("close", y);
49
50
  };
50
- }, [v]);
51
+ }, [x]);
51
52
  const W = {
52
- top: "modal-top",
53
- middle: "modal-middle",
54
- bottom: "modal-bottom"
55
- }, P = {
53
+ top: D,
54
+ middle: K,
55
+ bottom: F
56
+ }, U = {
56
57
  base: {
57
- top: "modal-top",
58
- middle: "modal-middle",
59
- bottom: "modal-bottom"
58
+ top: D,
59
+ middle: K,
60
+ bottom: F
60
61
  },
61
62
  sm: {
62
63
  top: "sm:modal-top",
@@ -83,82 +84,82 @@ function u({
83
84
  middle: "2xl:modal-middle",
84
85
  bottom: "2xl:modal-bottom"
85
86
  }
86
- }, F = {
87
- start: "modal-start",
88
- end: "modal-end"
89
- }, H = [
90
- "modal",
87
+ }, V = {
88
+ start: se,
89
+ end: le
90
+ }, X = [
91
+ re,
91
92
  ...(() => {
92
- if (C)
93
+ if (g)
93
94
  return [W.middle];
94
- if (!n)
95
+ if (!r)
95
96
  return [];
96
- if (typeof n == "string")
97
- return [W[n]];
97
+ if (typeof r == "string")
98
+ return [W[r]];
98
99
  const o = [];
99
- for (const [x, z] of Object.entries(n))
100
- z && o.push(P[x][z]);
100
+ for (const [y, I] of Object.entries(r))
101
+ I && o.push(U[y][I]);
101
102
  return o;
102
103
  })(),
103
- b && F[b],
104
- D
105
- ].filter(Boolean).join(" "), q = async () => {
104
+ f && V[f],
105
+ J
106
+ ].filter(Boolean).join(" "), Y = async () => {
106
107
  if (a) {
107
- B(!0);
108
+ L(!0);
108
109
  try {
109
- await a(), B(!1);
110
+ await a(), L(!1);
110
111
  } catch (o) {
111
- throw B(!1), o;
112
+ throw L(!1), o;
112
113
  }
113
114
  }
114
- }, G = () => {
115
- h && v && v();
116
- }, J = i ? { width: typeof i == "number" ? `${i}px` : i, maxWidth: "90vw" } : {}, Q = !s && (a || d), U = s != null;
115
+ }, Z = () => {
116
+ h && x && x();
117
+ }, _ = i ? { width: typeof i == "number" ? `${i}px` : i, maxWidth: "90vw" } : {}, ee = !s && (a || d), te = s != null;
117
118
  return /* @__PURE__ */ m(
118
119
  "dialog",
119
120
  {
120
- ref: N,
121
- role: A ? "alertdialog" : "dialog",
121
+ ref: M,
122
+ role: G ? "alertdialog" : "dialog",
122
123
  "aria-modal": "true",
123
- className: H,
124
+ className: X,
124
125
  "data-state": l ? "open" : "closed",
125
- "aria-labelledby": r ? $ : void 0,
126
- "aria-describedby": E,
127
- ...K,
126
+ "aria-labelledby": n ? O : void 0,
127
+ "aria-describedby": S,
128
+ ...Q,
128
129
  children: [
129
- /* @__PURE__ */ m("div", { className: "modal-box", style: J, children: [
130
- r && /* @__PURE__ */ t("h3", { id: $, className: "text-lg font-bold mb-4", children: r }),
131
- /* @__PURE__ */ t("div", { id: E, className: "py-4", children: e }),
132
- Q && /* @__PURE__ */ m("div", { className: "modal-action", children: [
133
- d && /* @__PURE__ */ t("button", { ref: T, className: "btn", onClick: d, children: c }),
130
+ /* @__PURE__ */ m("div", { className: ae, style: _, children: [
131
+ n && /* @__PURE__ */ t("h3", { id: O, className: "text-lg font-bold mb-4", children: n }),
132
+ /* @__PURE__ */ t("div", { id: S, className: "py-4", children: e }),
133
+ ee && /* @__PURE__ */ m("div", { className: H, children: [
134
+ d && /* @__PURE__ */ t("button", { ref: E, className: b, onClick: d, children: c }),
134
135
  a && /* @__PURE__ */ t(
135
136
  "button",
136
137
  {
137
- ref: R,
138
- className: `btn btn-primary ${L ? "loading" : ""}`,
139
- onClick: q,
140
- disabled: L,
141
- "aria-busy": L || void 0,
142
- children: y
138
+ ref: A,
139
+ className: `${b} ${T} ${B ? "loading" : ""}`,
140
+ onClick: Y,
141
+ disabled: B,
142
+ "aria-busy": B || void 0,
143
+ children: C
143
144
  }
144
145
  )
145
146
  ] }),
146
- U && /* @__PURE__ */ t("div", { className: "modal-action", children: s })
147
+ te && /* @__PURE__ */ t("div", { className: H, children: s })
147
148
  ] }),
148
- p && h && /* @__PURE__ */ t("form", { method: "dialog", className: "modal-backdrop", children: /* @__PURE__ */ t("button", { ref: j, onClick: G, children: /* @__PURE__ */ t("span", { className: "sr-only", children: "Close modal" }) }) })
149
+ p && h && /* @__PURE__ */ t("form", { method: "dialog", className: de, children: /* @__PURE__ */ t("button", { ref: R, onClick: Z, children: /* @__PURE__ */ t("span", { className: "sr-only", children: "Close modal" }) }) })
149
150
  ]
150
151
  }
151
152
  );
152
153
  }
153
- function w(e) {
154
- const r = document.createElement("div");
155
- document.body.appendChild(r);
156
- const s = X(r), l = () => {
157
- s.unmount(), r.parentNode && r.parentNode.removeChild(r);
154
+ function k(e) {
155
+ const n = document.createElement("div");
156
+ document.body.appendChild(n);
157
+ const s = ne(n), l = () => {
158
+ s.unmount(), n.parentNode && n.parentNode.removeChild(n);
158
159
  }, a = () => {
159
- const [d, y] = M.useState(!0), [c, h] = M.useState(!1), p = () => {
160
- y(!1), setTimeout(l, 300);
161
- }, n = async () => {
160
+ const [d, C] = $.useState(!0), [c, h] = $.useState(!1), p = () => {
161
+ C(!1), setTimeout(l, 300);
162
+ }, r = async () => {
162
163
  if (e.onOk) {
163
164
  h(!0);
164
165
  try {
@@ -168,21 +169,21 @@ function w(e) {
168
169
  }
169
170
  } else
170
171
  p();
171
- }, b = () => {
172
+ }, f = () => {
172
173
  e.onCancel?.(), p();
173
174
  }, i = () => {
174
175
  switch (e.type) {
175
176
  case "success":
176
- return "alert-success";
177
+ return me;
177
178
  case "warning":
178
- return "alert-warning";
179
+ return ue;
179
180
  case "error":
180
- return "alert-error";
181
+ return he;
181
182
  case "info":
182
183
  default:
183
- return "alert-info";
184
+ return ie;
184
185
  }
185
- }, C = () => {
186
+ }, g = () => {
186
187
  switch (e.type) {
187
188
  case "success":
188
189
  return /* @__PURE__ */ t(
@@ -266,27 +267,27 @@ function w(e) {
266
267
  }
267
268
  );
268
269
  }
269
- }, g = e.type === "warning" || e.type === "error";
270
+ }, N = e.type === "warning" || e.type === "error";
270
271
  return /* @__PURE__ */ m(
271
272
  u,
272
273
  {
273
274
  open: d,
274
- onOk: e.showCancel ? void 0 : n,
275
- onCancel: b,
276
- alertDialog: g,
277
- title: e.type ? /* @__PURE__ */ m("div", { className: `alert ${i()}`, children: [
278
- C(),
275
+ onOk: e.showCancel ? void 0 : r,
276
+ onCancel: f,
277
+ alertDialog: N,
278
+ title: e.type ? /* @__PURE__ */ m("div", { className: `${ce} ${i()}`, children: [
279
+ g(),
279
280
  /* @__PURE__ */ t("div", { children: e.title && /* @__PURE__ */ t("h3", { className: "font-bold", children: e.title }) })
280
281
  ] }) : e.title,
281
282
  okText: e.okText,
282
283
  cancelText: e.cancelText,
283
- footer: e.showCancel ? /* @__PURE__ */ m(V, { children: [
284
- /* @__PURE__ */ t("button", { className: "btn", onClick: b, children: e.cancelText || "Cancel" }),
284
+ footer: e.showCancel ? /* @__PURE__ */ m(oe, { children: [
285
+ /* @__PURE__ */ t("button", { className: b, onClick: f, children: e.cancelText || "Cancel" }),
285
286
  /* @__PURE__ */ t(
286
287
  "button",
287
288
  {
288
- className: `btn ${e.type === "error" ? "btn-error" : "btn-primary"} ${c ? "loading" : ""}`,
289
- onClick: n,
289
+ className: `${b} ${e.type === "error" ? q : T} ${c ? "loading" : ""}`,
290
+ onClick: r,
290
291
  disabled: c,
291
292
  children: e.okText || "OK"
292
293
  }
@@ -294,8 +295,8 @@ function w(e) {
294
295
  ] }) : /* @__PURE__ */ t(
295
296
  "button",
296
297
  {
297
- className: `btn ${e.type === "error" ? "btn-error" : "btn-primary"} ${c ? "loading" : ""}`,
298
- onClick: n,
298
+ className: `${b} ${e.type === "error" ? q : T} ${c ? "loading" : ""}`,
299
+ onClick: r,
299
300
  disabled: c,
300
301
  children: e.okText || "OK"
301
302
  }
@@ -311,26 +312,26 @@ function w(e) {
311
312
  destroy: l
312
313
  };
313
314
  }
314
- function Y(e) {
315
- return w({ ...e, showCancel: !0 });
315
+ function pe(e) {
316
+ return k({ ...e, showCancel: !0 });
316
317
  }
317
- function Z(e) {
318
- return w({ ...e, type: "info", showCancel: !1 });
318
+ function fe(e) {
319
+ return k({ ...e, type: "info", showCancel: !1 });
319
320
  }
320
- function _(e) {
321
- return w({ ...e, type: "success", showCancel: !1 });
321
+ function we(e) {
322
+ return k({ ...e, type: "success", showCancel: !1 });
322
323
  }
323
- function ee(e) {
324
- return w({ ...e, type: "warning", showCancel: !1 });
324
+ function be(e) {
325
+ return k({ ...e, type: "warning", showCancel: !1 });
325
326
  }
326
- function te(e) {
327
- return w({ ...e, type: "error", showCancel: !1 });
327
+ function ke(e) {
328
+ return k({ ...e, type: "error", showCancel: !1 });
328
329
  }
329
- u.confirm = Y;
330
- u.info = Z;
331
- u.success = _;
332
- u.warning = ee;
333
- u.error = te;
330
+ u.confirm = pe;
331
+ u.info = fe;
332
+ u.success = we;
333
+ u.warning = be;
334
+ u.error = ke;
334
335
  export {
335
336
  u as Modal
336
337
  };