@vkzstudio/muza-ui 1.0.11 → 1.0.13

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 (242) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +57 -4
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +1 -4
  4. package/dist/components/Accordion/Accordion.stories.d.ts.map +1 -1
  5. package/dist/components/Alert/Alert.d.ts +13 -2
  6. package/dist/components/Alert/Alert.d.ts.map +1 -1
  7. package/dist/components/Alert/Alert.js +4 -4
  8. package/dist/components/Alert/Alert.stories.d.ts.map +1 -1
  9. package/dist/components/Avatar/Avatar.d.ts +12 -1
  10. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  11. package/dist/components/Avatar/Avatar.stories.d.ts.map +1 -1
  12. package/dist/components/Breadcrumb/Breadcrumb.d.ts +23 -8
  13. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  14. package/dist/components/Breadcrumb/Breadcrumb.js +3 -12
  15. package/dist/components/Button/Button.d.ts +30 -0
  16. package/dist/components/Button/Button.d.ts.map +1 -1
  17. package/dist/components/Button/Button.js +1 -1
  18. package/dist/components/Button/Button.stories.d.ts.map +1 -1
  19. package/dist/components/Calendar/Calendar.d.ts +39 -3
  20. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  21. package/dist/components/Calendar/Calendar.js +1 -1
  22. package/dist/components/Calendar/utils/formatDate.d.ts +4 -0
  23. package/dist/components/Calendar/utils/formatDate.d.ts.map +1 -1
  24. package/dist/components/Calendar/utils/formatDateRange.d.ts +5 -0
  25. package/dist/components/Calendar/utils/formatDateRange.d.ts.map +1 -1
  26. package/dist/components/Checkbox/Checkbox.d.ts +25 -3
  27. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  28. package/dist/components/Checkbox/Checkbox.js +1 -1
  29. package/dist/components/Checkbox/Checkbox.stories.d.ts.map +1 -1
  30. package/dist/components/Chip/Chip.d.ts +3 -6
  31. package/dist/components/Chip/Chip.d.ts.map +1 -1
  32. package/dist/components/Chip/Chip.js +6 -6
  33. package/dist/components/Chip/Chip.stories.d.ts.map +1 -1
  34. package/dist/components/DataTable/DataTable.d.ts +40 -1
  35. package/dist/components/DataTable/DataTable.d.ts.map +1 -1
  36. package/dist/components/DataTable/DataTable.js +1 -1
  37. package/dist/components/DataTable/DataTable.stories.d.ts.map +1 -1
  38. package/dist/components/DataTable/index.d.ts +1 -1
  39. package/dist/components/DataTable/index.d.ts.map +1 -1
  40. package/dist/components/DatePicker/DatePicker.d.ts +59 -4
  41. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  42. package/dist/components/DatePicker/DatePicker.js +7 -7
  43. package/dist/components/DatePicker/DatePicker.stories.d.ts.map +1 -1
  44. package/dist/components/DatePicker/index.d.ts +1 -0
  45. package/dist/components/DatePicker/index.d.ts.map +1 -1
  46. package/dist/components/DatePicker/utils/getDateRange.d.ts +9 -0
  47. package/dist/components/DatePicker/utils/getDateRange.d.ts.map +1 -1
  48. package/dist/components/DatePicker/utils/getDateRange.js +28 -15
  49. package/dist/components/Dialog/Dialog.d.ts +39 -2
  50. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  51. package/dist/components/Dialog/Dialog.js +176 -60
  52. package/dist/components/Dialog/Dialog.stories.d.ts +2 -0
  53. package/dist/components/Dialog/Dialog.stories.d.ts.map +1 -1
  54. package/dist/components/DropdownMenu/DropdownMenu.d.ts +73 -11
  55. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  56. package/dist/components/DropdownMenu/DropdownMenu.js +2 -8
  57. package/dist/components/DropdownMenu/DropdownMenu.stories.d.ts +10 -26
  58. package/dist/components/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -1
  59. package/dist/components/EdgeButton/EdgeButton.d.ts +18 -0
  60. package/dist/components/EdgeButton/EdgeButton.d.ts.map +1 -1
  61. package/dist/components/EdgeButton/EdgeButton.js +4 -4
  62. package/dist/components/EdgeButton/EdgeButton.stories.d.ts.map +1 -1
  63. package/dist/components/EdgeButton/index.d.ts +1 -1
  64. package/dist/components/EdgeButton/index.d.ts.map +1 -1
  65. package/dist/components/EmptyState/EmptyState.d.ts +10 -0
  66. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  67. package/dist/components/EmptyState/EmptyState.js +6 -6
  68. package/dist/components/EmptyState/EmptyState.stories.d.ts.map +1 -1
  69. package/dist/components/ExpandableTable/ExpandableTable.d.ts +54 -0
  70. package/dist/components/ExpandableTable/ExpandableTable.d.ts.map +1 -1
  71. package/dist/components/ExpandableTable/ExpandableTable.js +2 -2
  72. package/dist/components/ExpandableTable/ExpandableTable.stories.d.ts +0 -3
  73. package/dist/components/ExpandableTable/ExpandableTable.stories.d.ts.map +1 -1
  74. package/dist/components/ExpandableTable/Table.js +1 -1
  75. package/dist/components/ExpandableTable/index.d.ts +1 -1
  76. package/dist/components/ExpandableTable/index.d.ts.map +1 -1
  77. package/dist/components/FileUpload/FileItem.js +1 -1
  78. package/dist/components/FileUpload/FileUpload.d.ts +51 -0
  79. package/dist/components/FileUpload/FileUpload.d.ts.map +1 -1
  80. package/dist/components/FileUpload/FileUpload.stories.d.ts.map +1 -1
  81. package/dist/components/FileUpload/index.d.ts +1 -1
  82. package/dist/components/FileUpload/index.d.ts.map +1 -1
  83. package/dist/components/Flex/Flex.d.ts +49 -1
  84. package/dist/components/Flex/Flex.d.ts.map +1 -1
  85. package/dist/components/Flex/Flex.stories.d.ts.map +1 -1
  86. package/dist/components/Flex/index.d.ts +1 -1
  87. package/dist/components/Flex/index.d.ts.map +1 -1
  88. package/dist/components/Icons/CustomIcons.d.ts +166 -1
  89. package/dist/components/Icons/CustomIcons.d.ts.map +1 -1
  90. package/dist/components/Icons/CustomIcons.js +110 -97
  91. package/dist/components/InfoCard/InfoCard.d.ts +17 -0
  92. package/dist/components/InfoCard/InfoCard.d.ts.map +1 -0
  93. package/dist/components/InfoCard/index.d.ts +2 -0
  94. package/dist/components/InfoCard/index.d.ts.map +1 -0
  95. package/dist/components/Input/Input.d.ts +26 -0
  96. package/dist/components/Input/Input.d.ts.map +1 -1
  97. package/dist/components/Input/Input.stories.d.ts.map +1 -1
  98. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts +16 -0
  99. package/dist/components/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
  100. package/dist/components/LanguageSwitcher/LanguageSwitcher.stories.d.ts.map +1 -1
  101. package/dist/components/Lightbox/Lightbox.d.ts +15 -2
  102. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  103. package/dist/components/Lightbox/Lightbox.js +22 -20
  104. package/dist/components/Loader/Loader.d.ts +3 -0
  105. package/dist/components/Loader/Loader.d.ts.map +1 -1
  106. package/dist/components/Loader/Loader.stories.d.ts.map +1 -1
  107. package/dist/components/LoginScreen/LoginScreen.d.ts +18 -0
  108. package/dist/components/LoginScreen/LoginScreen.d.ts.map +1 -1
  109. package/dist/components/LoginScreen/LoginScreen.stories.d.ts.map +1 -1
  110. package/dist/components/LoginScreen/LoginScreenItem.d.ts +5 -0
  111. package/dist/components/LoginScreen/LoginScreenItem.d.ts.map +1 -1
  112. package/dist/components/LoginScreen/index.d.ts +2 -2
  113. package/dist/components/LoginScreen/index.d.ts.map +1 -1
  114. package/dist/components/MultiSelect/MultiSelect.d.ts +25 -0
  115. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  116. package/dist/components/MultiSelect/MultiSelect.js +8 -8
  117. package/dist/components/MultiSelect/MultiSelect.stories.d.ts.map +1 -1
  118. package/dist/components/MuzaUIProvider/MuzaUIProvider.d.ts +26 -1
  119. package/dist/components/MuzaUIProvider/MuzaUIProvider.d.ts.map +1 -1
  120. package/dist/components/PasswordInput/PasswordInput.d.ts +5 -0
  121. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
  122. package/dist/components/PasswordInput/PasswordInput.stories.d.ts.map +1 -1
  123. package/dist/components/PinIndicator/PinIndicator.d.ts +15 -0
  124. package/dist/components/PinIndicator/PinIndicator.d.ts.map +1 -1
  125. package/dist/components/PinIndicator/PinIndicator.stories.d.ts.map +1 -1
  126. package/dist/components/Popover/Popover.d.ts +36 -1
  127. package/dist/components/Popover/Popover.d.ts.map +1 -1
  128. package/dist/components/Popover/Popover.stories.d.ts.map +1 -1
  129. package/dist/components/Radio/Radio.d.ts +28 -3
  130. package/dist/components/Radio/Radio.d.ts.map +1 -1
  131. package/dist/components/Radio/Radio.js +2 -5
  132. package/dist/components/Radio/Radio.stories.d.ts.map +1 -1
  133. package/dist/components/Reorderable/Reorderable.d.ts +79 -30
  134. package/dist/components/Reorderable/Reorderable.d.ts.map +1 -1
  135. package/dist/components/Reorderable/Reorderable.js +162 -143
  136. package/dist/components/Reorderable/Reorderable.stories.d.ts +1 -0
  137. package/dist/components/Reorderable/Reorderable.stories.d.ts.map +1 -1
  138. package/dist/components/Reorderable/index.d.ts +1 -1
  139. package/dist/components/Reorderable/index.d.ts.map +1 -1
  140. package/dist/components/ReorderableTable/ReorderableTable.d.ts +47 -13
  141. package/dist/components/ReorderableTable/ReorderableTable.d.ts.map +1 -1
  142. package/dist/components/ReorderableTable/ReorderableTable.js +44 -43
  143. package/dist/components/ReorderableTable/ReorderableTable.stories.d.ts +1 -0
  144. package/dist/components/ReorderableTable/ReorderableTable.stories.d.ts.map +1 -1
  145. package/dist/components/ReorderableTable/index.d.ts +1 -1
  146. package/dist/components/ReorderableTable/index.d.ts.map +1 -1
  147. package/dist/components/Searchbar/Searchbar.d.ts +11 -0
  148. package/dist/components/Searchbar/Searchbar.d.ts.map +1 -1
  149. package/dist/components/Searchbar/Searchbar.stories.d.ts.map +1 -1
  150. package/dist/components/SegmentedControl/SegmentedControl.d.ts +35 -1
  151. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  152. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  153. package/dist/components/SegmentedControl/SegmentedControl.stories.d.ts.map +1 -1
  154. package/dist/components/SegmentedControl/index.d.ts +1 -1
  155. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  156. package/dist/components/SegmentedIconControl/SegmentedIconControl.d.ts +38 -1
  157. package/dist/components/SegmentedIconControl/SegmentedIconControl.d.ts.map +1 -1
  158. package/dist/components/SegmentedIconControl/SegmentedIconControl.stories.d.ts.map +1 -1
  159. package/dist/components/SegmentedIconControl/index.d.ts +1 -1
  160. package/dist/components/SegmentedIconControl/index.d.ts.map +1 -1
  161. package/dist/components/Select/Select.d.ts +25 -0
  162. package/dist/components/Select/Select.d.ts.map +1 -1
  163. package/dist/components/Select/Select.stories.d.ts.map +1 -1
  164. package/dist/components/Select/index.d.ts +1 -1
  165. package/dist/components/Select/index.d.ts.map +1 -1
  166. package/dist/components/Skeleton/Skeleton.d.ts +9 -6
  167. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  168. package/dist/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
  169. package/dist/components/SliderIndicators/SliderIndicators.d.ts +9 -0
  170. package/dist/components/SliderIndicators/SliderIndicators.d.ts.map +1 -1
  171. package/dist/components/SliderIndicators/SliderIndicators.stories.d.ts.map +1 -1
  172. package/dist/components/Stepper/Stepper.d.ts +38 -0
  173. package/dist/components/Stepper/Stepper.d.ts.map +1 -1
  174. package/dist/components/Stepper/Stepper.js +5 -5
  175. package/dist/components/Stepper/Stepper.stories.d.ts.map +1 -1
  176. package/dist/components/Stepper/index.d.ts +1 -1
  177. package/dist/components/Stepper/index.d.ts.map +1 -1
  178. package/dist/components/SwipeButton/SwipeButton.d.ts +39 -0
  179. package/dist/components/SwipeButton/SwipeButton.d.ts.map +1 -1
  180. package/dist/components/SwipeButton/SwipeButton.js +1 -1
  181. package/dist/components/SwipeButton/SwipeButton.stories.d.ts +0 -43
  182. package/dist/components/SwipeButton/SwipeButton.stories.d.ts.map +1 -1
  183. package/dist/components/SwipeButton/index.d.ts +1 -1
  184. package/dist/components/SwipeButton/index.d.ts.map +1 -1
  185. package/dist/components/Switch/Switch.d.ts +19 -0
  186. package/dist/components/Switch/Switch.d.ts.map +1 -1
  187. package/dist/components/Switch/Switch.stories.d.ts.map +1 -1
  188. package/dist/components/Tag/Tag.d.ts +17 -1
  189. package/dist/components/Tag/Tag.d.ts.map +1 -1
  190. package/dist/components/Tag/Tag.js +4 -4
  191. package/dist/components/Tag/Tag.stories.d.ts.map +1 -1
  192. package/dist/components/TextEditor/EditorToolbar.js +1 -1
  193. package/dist/components/TextEditor/LinkBubbleMenu.d.ts +4 -1
  194. package/dist/components/TextEditor/LinkBubbleMenu.d.ts.map +1 -1
  195. package/dist/components/TextEditor/LinkBubbleMenu.js +116 -92
  196. package/dist/components/TextEditor/TextEditor.d.ts +5 -2
  197. package/dist/components/TextEditor/TextEditor.d.ts.map +1 -1
  198. package/dist/components/TextEditor/TextEditor.js +129 -121
  199. package/dist/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  200. package/dist/components/Textarea/Textarea.d.ts +9 -2
  201. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  202. package/dist/components/Textarea/Textarea.stories.d.ts.map +1 -1
  203. package/dist/components/TimePicker/TimePicker.d.ts +23 -1
  204. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -1
  205. package/dist/components/TimePicker/TimePicker.js +1 -4
  206. package/dist/components/TimePicker/TimePicker.stories.d.ts.map +1 -1
  207. package/dist/components/Toast/Toast.d.ts +21 -1
  208. package/dist/components/Toast/Toast.d.ts.map +1 -1
  209. package/dist/components/Toast/Toast.js +7 -7
  210. package/dist/components/Toast/Toast.stories.d.ts.map +1 -1
  211. package/dist/components/Toast/ToastContainer.d.ts +12 -1
  212. package/dist/components/Toast/ToastContainer.d.ts.map +1 -1
  213. package/dist/components/Toast/index.d.ts +1 -1
  214. package/dist/components/Toast/index.d.ts.map +1 -1
  215. package/dist/components/Toggle/Toggle.d.ts +17 -1
  216. package/dist/components/Toggle/Toggle.d.ts.map +1 -1
  217. package/dist/components/Toggle/Toggle.js +6 -6
  218. package/dist/components/Toggle/Toggle.stories.d.ts.map +1 -1
  219. package/dist/components/Toggle/index.d.ts +1 -1
  220. package/dist/components/Toggle/index.d.ts.map +1 -1
  221. package/dist/components/ToggleGroup/ToggleGroup.d.ts +52 -4
  222. package/dist/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  223. package/dist/components/ToggleGroup/ToggleGroup.js +1 -1
  224. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts.map +1 -1
  225. package/dist/components/ToggleGroup/index.d.ts +1 -1
  226. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  227. package/dist/components/Tooltip/Tooltip.d.ts +38 -3
  228. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  229. package/dist/components/Tooltip/Tooltip.js +5 -7
  230. package/dist/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  231. package/dist/components/Typography/Typography.d.ts +18 -1
  232. package/dist/components/Typography/Typography.d.ts.map +1 -1
  233. package/dist/components/Typography/Typography.stories.d.ts.map +1 -1
  234. package/dist/components/Typography/index.d.ts +1 -1
  235. package/dist/components/Typography/index.d.ts.map +1 -1
  236. package/dist/index.js +191 -184
  237. package/dist/muza-ui.css +1 -1
  238. package/dist/styles/token-sizes.css +4 -0
  239. package/llms-full.md +581 -0
  240. package/llms.txt +36 -0
  241. package/package.json +4 -3
  242. package/CLAUDE_CONSUMER.md +0 -238
@@ -81,6 +81,7 @@
81
81
  --spacing-comp-carousel-circle-size: var(--spacing-28);
82
82
  --spacing-comp-checkbox-w-stroke: var(--spacing-1);
83
83
  --spacing-comp-dialog-p-hor: var(--spacing-2xl);
84
+ --spacing-comp-dialog-p-hor-sm: var(--spacing-xl);
84
85
  --spacing-comp-dialog-p: var(--spacing-3xl);
85
86
  --spacing-comp-dialog-gap: var(--spacing-4xl);
86
87
  --spacing-comp-dialog-p-hor-overlay: var(--spacing-5xl);
@@ -250,6 +251,7 @@
250
251
  --spacing-comp-carousel-circle-size: var(--spacing-28);
251
252
  --spacing-comp-checkbox-w-stroke: var(--spacing-1);
252
253
  --spacing-comp-dialog-p-hor: var(--spacing-2xl);
254
+ --spacing-comp-dialog-p-hor-sm: var(--spacing-xl);
253
255
  --spacing-comp-dialog-p: var(--spacing-3xl);
254
256
  --spacing-comp-dialog-gap: var(--spacing-4xl);
255
257
  --spacing-comp-dialog-p-hor-overlay: var(--spacing-5xl);
@@ -423,6 +425,7 @@
423
425
  --spacing-comp-dialog-p: var(--spacing-xl);
424
426
  --spacing-comp-dialog-p-hor-overlay: var(--spacing-xl);
425
427
  --spacing-comp-dialog-p-hor: var(--spacing-2xl);
428
+ --spacing-comp-dialog-p-hor-sm: var(--spacing-xl);
426
429
  --spacing-comp-dialog-gap: var(--spacing-3xl);
427
430
  --spacing-comp-dialog-img-h: var(--spacing-56);
428
431
  --spacing-comp-dialog-img-w: 100px;
@@ -592,6 +595,7 @@
592
595
  --spacing-comp-carousel-circle-size: var(--spacing-28);
593
596
  --spacing-comp-checkbox-w-stroke: var(--spacing-1);
594
597
  --spacing-comp-dialog-p-hor: var(--spacing-2xl);
598
+ --spacing-comp-dialog-p-hor-sm: var(--spacing-xl);
595
599
  --spacing-comp-dialog-p: var(--spacing-3xl);
596
600
  --spacing-comp-dialog-gap: var(--spacing-4xl);
597
601
  --spacing-comp-dialog-p-hor-overlay: var(--spacing-5xl);
package/llms-full.md ADDED
@@ -0,0 +1,581 @@
1
+ # Muza UI Library Integration
2
+
3
+ This project uses the `@vkzstudio/muza-ui` component library. Follow these guidelines when working with Muza UI components.
4
+
5
+ ## Quick Reference
6
+
7
+ ```tsx
8
+ // Import styles (required - should already be in main entry file)
9
+ // Alternative: import '@vkzstudio/muza-ui/dist/muza-ui.css'
10
+ // Import components
11
+ import { Alert, Button, Input, Select } from '@vkzstudio/muza-ui'
12
+ import '@vkzstudio/muza-ui/styles'
13
+ ```
14
+
15
+ ## MuzaUIProvider
16
+
17
+ Wrap your app with `MuzaUIProvider` to enable translations and built-in `ToastContainer`:
18
+
19
+ ```tsx
20
+ import { MuzaUIProvider } from '@vkzstudio/muza-ui'
21
+
22
+ ;<MuzaUIProvider locale="en">
23
+ {' '}
24
+ {/* 'en' | 'cs' | 'sk' */}
25
+ <App />
26
+ </MuzaUIProvider>
27
+ ```
28
+
29
+ Components like DatePicker, Select, and Calendar use translated strings automatically. You can override any text via component props.
30
+
31
+ ## Component Usage Rules
32
+
33
+ ### 1. Always Use Library Components
34
+
35
+ NEVER create new UI components that duplicate Muza UI functionality. Check available components first:
36
+
37
+ **Complete Component List (48 components)**
38
+
39
+ **Form & Input (14)**:
40
+ Button, Input, PasswordInput, Textarea, Checkbox, Radio, Switch, Toggle, ToggleGroup, Select, MultiSelect, Searchbar, FileUpload, TextEditor
41
+
42
+ **Layout & Structure (5)**:
43
+ Accordion, Flex, Typography, Dialog, Skeleton
44
+
45
+ **Data Display (4)**:
46
+ DataTable, ExpandableTable, Reorderable, ReorderableTable
47
+
48
+ **Feedback & Status (8)**:
49
+ Alert, Chip, Tag, Loader, EmptyState, Toast, PinIndicator, SliderIndicators
50
+
51
+ **Navigation (8)**:
52
+ Breadcrumb, DropdownMenu, SegmentedControl, SegmentedIconControl, Stepper, SwipeButton, EdgeButton, LanguageSwitcher
53
+
54
+ **Media & Display (3)**:
55
+ Avatar, Lightbox, Tooltip
56
+
57
+ **Date & Time (3)**:
58
+ Calendar, DatePicker, TimePicker
59
+
60
+ **Specialized (3)**:
61
+ Popover, LoginScreen, Icons
62
+
63
+ ### 2. Component Variants
64
+
65
+ Use consistent variants across the app:
66
+
67
+ ```tsx
68
+ // Button variants
69
+ variant: "primary" | "secondary" | "tertiary" | "invert" | "dashed" | "link" | "linkInvert"
70
+ size: "xs" | "sm" | "md" | "lg"
71
+
72
+ // Button modifiers (can combine with any variant)
73
+ ghost: boolean // Ghost styling overlay
74
+ danger: boolean // Danger styling overlay
75
+
76
+ // Examples of combinations
77
+ <Button variant="primary" ghost>Ghost Primary</Button>
78
+ <Button variant="secondary" danger>Danger Secondary</Button>
79
+ <Button variant="tertiary" ghost danger>Ghost Danger Tertiary</Button>
80
+
81
+ // Other Button props
82
+ loading, fullWidth, icon, iconPosition
83
+
84
+ // Input states
85
+ <Input error={hasError} disabled={isDisabled} />
86
+ <Input mask="(000) 000-0000" placeholder="Phone" /> // With masking
87
+
88
+ // Alert types (use 'type' not 'variant')
89
+ <Alert type="info" | "success" | "warning" | "error" />
90
+ ```
91
+
92
+ ### 3. Design Tokens (Spacing)
93
+
94
+ Spacing tokens used by Flex `gap`, `p`, `m` props and throughout the library:
95
+
96
+ | Token | Value | Token | Value |
97
+ | ------ | ----- | ----- | ----- |
98
+ | `none` | 0px | `lg` | 16px |
99
+ | `3xs` | 2px | `xl` | 20px |
100
+ | `2xs` | 4px | `2xl` | 24px |
101
+ | `xs` | 6px | `3xl` | 32px |
102
+ | `sm` | 8px | `4xl` | 40px |
103
+ | `md` | 12px | `5xl` | 48px |
104
+
105
+ ```tsx
106
+ // Flex with spacing tokens
107
+ <Flex gap="md" direction="column"> {/* gap = 12px */}
108
+ <Flex gap="lg" p="xl"> {/* gap = 16px, padding = 20px */}
109
+ <Flex gapX="sm" gapY="md"> {/* horizontal gap = 8px, vertical gap = 12px */}
110
+ ```
111
+
112
+ ### 4. Compound Components
113
+
114
+ These components require specific sub-component composition:
115
+
116
+ #### Dialog (38 uses)
117
+
118
+ ```tsx
119
+ import {
120
+ Dialog,
121
+ DialogClose,
122
+ DialogContent,
123
+ DialogDescription,
124
+ DialogTitle,
125
+ DialogTrigger,
126
+ } from '@vkzstudio/muza-ui'
127
+
128
+ ;<Dialog>
129
+ <DialogTrigger asChild>
130
+ <Button>Open Dialog</Button>
131
+ </DialogTrigger>
132
+ <DialogContent size="medium">
133
+ <DialogTitle>Dialog Title</DialogTitle>
134
+ <DialogDescription>Optional description text.</DialogDescription>
135
+ {/* Content here */}
136
+ <DialogClose asChild>
137
+ <Button variant="secondary">Cancel</Button>
138
+ </DialogClose>
139
+ </DialogContent>
140
+ </Dialog>
141
+ ```
142
+
143
+ Sub-components: `Dialog`, `DialogTrigger`, `DialogContent`, `DialogTitle`, `DialogDescription`, `DialogClose`, `DialogOverlay`, `DialogPortal`
144
+
145
+ #### DropdownMenu (19 uses)
146
+
147
+ ```tsx
148
+ import {
149
+ DropdownMenu,
150
+ DropdownMenuContent,
151
+ DropdownMenuItem,
152
+ DropdownMenuSeparator,
153
+ DropdownMenuTrigger,
154
+ } from '@vkzstudio/muza-ui'
155
+
156
+ ;<DropdownMenu>
157
+ <DropdownMenuTrigger asChild>
158
+ <Button>Menu</Button>
159
+ </DropdownMenuTrigger>
160
+ <DropdownMenuContent>
161
+ <DropdownMenuItem>Edit</DropdownMenuItem>
162
+ <DropdownMenuItem>Duplicate</DropdownMenuItem>
163
+ <DropdownMenuSeparator />
164
+ <DropdownMenuItem variant="destructive">Delete</DropdownMenuItem>
165
+ </DropdownMenuContent>
166
+ </DropdownMenu>
167
+ ```
168
+
169
+ Sub-components: `DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioGroup`, `DropdownMenuRadioItem`, `DropdownMenuSeparator`, `DropdownMenuButtonItem`
170
+
171
+ #### Accordion
172
+
173
+ ```tsx
174
+ import {
175
+ Accordion,
176
+ AccordionContent,
177
+ AccordionHeader,
178
+ AccordionItem,
179
+ } from '@vkzstudio/muza-ui'
180
+
181
+ ;<Accordion type="single" collapsible>
182
+ <AccordionItem value="item-1">
183
+ <AccordionHeader>Section 1</AccordionHeader>
184
+ <AccordionContent>Content for section 1</AccordionContent>
185
+ </AccordionItem>
186
+ </Accordion>
187
+ ```
188
+
189
+ #### Tooltip
190
+
191
+ ```tsx
192
+ import {
193
+ Tooltip,
194
+ TooltipContent,
195
+ TooltipProvider,
196
+ TooltipTrigger,
197
+ } from '@vkzstudio/muza-ui'
198
+
199
+ ;<TooltipProvider>
200
+ <Tooltip>
201
+ <TooltipTrigger asChild>
202
+ <Button>Hover me</Button>
203
+ </TooltipTrigger>
204
+ <TooltipContent>Tooltip text</TooltipContent>
205
+ </Tooltip>
206
+ </TooltipProvider>
207
+ ```
208
+
209
+ #### Popover
210
+
211
+ ```tsx
212
+ import { Popover, PopoverContent, PopoverTrigger } from '@vkzstudio/muza-ui'
213
+
214
+ ;<Popover>
215
+ <PopoverTrigger asChild>
216
+ <Button>Open</Button>
217
+ </PopoverTrigger>
218
+ <PopoverContent>Popover content</PopoverContent>
219
+ </Popover>
220
+ ```
221
+
222
+ ### 5. Complex Component APIs
223
+
224
+ #### DatePicker
225
+
226
+ DatePicker uses `mode` to determine value/onChange types:
227
+
228
+ ```tsx
229
+ import { DatePicker } from '@vkzstudio/muza-ui'
230
+ import type { DateRange } from 'react-day-picker'
231
+
232
+ // Single date mode
233
+ const [date, setDate] = useState<Date | undefined>()
234
+ <DatePicker mode="single" value={date} onChange={setDate} />
235
+
236
+ // Date range mode
237
+ const [dateRange, setDateRange] = useState<DateRange | undefined>()
238
+ <DatePicker mode="range" value={dateRange} onChange={setDateRange} />
239
+
240
+ // With presets (range mode only)
241
+ <DatePicker
242
+ mode="range"
243
+ value={dateRange}
244
+ onChange={setDateRange}
245
+ allowedPresets={[
246
+ { name: 'Last 7 days', type: 'Last 7 days' },
247
+ { name: 'This month', type: 'This month' },
248
+ { name: 'Last 30 days', type: 'Last 30 days' },
249
+ ]}
250
+ />
251
+ ```
252
+
253
+ #### Select
254
+
255
+ ```tsx
256
+ import { Select } from '@vkzstudio/muza-ui'
257
+
258
+ ;<Select
259
+ label="Country"
260
+ options={[
261
+ { value: 'cz', label: 'Czech Republic' },
262
+ { value: 'sk', label: 'Slovakia' },
263
+ { value: 'de', label: 'Germany', disabled: true },
264
+ { value: 'at', label: 'Austria', icon: <FlagIcon /> },
265
+ ]}
266
+ value={selectedCountry}
267
+ onChange={setSelectedCountry}
268
+ placeholder="Select a country"
269
+ error={!!errors.country}
270
+ hint={errors.country?.message}
271
+ />
272
+ ```
273
+
274
+ #### toast() (imperative API)
275
+
276
+ Toast uses an imperative function, not a declarative component:
277
+
278
+ ```tsx
279
+ import { toast } from '@vkzstudio/muza-ui'
280
+
281
+ // Usage anywhere in your app
282
+ toast({ variant: 'success', text: 'Saved successfully!' })
283
+ toast({ variant: 'error', text: 'Failed to save', closable: true })
284
+ toast({ variant: 'warning', text: 'Unsaved changes', autoDismiss: 5000 })
285
+ ```
286
+
287
+ **Note:** If using `MuzaUIProvider`, `ToastContainer` is already included. Otherwise, add `<ToastContainer position="top-right" />` to your app root.
288
+
289
+ #### FileUpload
290
+
291
+ ```tsx
292
+ import { FileUpload } from '@vkzstudio/muza-ui'
293
+
294
+ ;<FileUpload
295
+ onDrop={(acceptedFiles) => handleFiles(acceptedFiles)}
296
+ accept="image/*"
297
+ maxSize={5 * 1024 * 1024} // 5MB
298
+ maxFiles={3}
299
+ error={!!errors.files}
300
+ disabled={isSubmitting}
301
+ />
302
+ ```
303
+
304
+ #### Skeleton
305
+
306
+ ```tsx
307
+ import { Skeleton } from '@vkzstudio/muza-ui'
308
+
309
+ // Basic skeleton
310
+ <Skeleton className="h-12 w-full" />
311
+ <Skeleton className="h-4 w-3/4" />
312
+
313
+ // Use color="light" on white backgrounds
314
+ <Skeleton className="h-8 w-32" color="light" />
315
+
316
+ // ExpandableTable skeleton (static property)
317
+ <Skeleton.ExpandableTable rows={5} />
318
+ ```
319
+
320
+ **Skeleton Loading Pattern:** Attach skeletons as static properties on your components:
321
+
322
+ ```tsx
323
+ const MyComponent = ({ data }: Props) => {
324
+ return <div>{/* component content */}</div>
325
+ }
326
+
327
+ const MyComponentSkeleton = () => {
328
+ return (
329
+ <Flex gap="md">
330
+ <Skeleton className="h-12 w-12 rounded-full" />
331
+ <Skeleton className="h-4 w-3/4" />
332
+ </Flex>
333
+ )
334
+ }
335
+
336
+ MyComponent.Skeleton = MyComponentSkeleton
337
+ export { MyComponent }
338
+
339
+ // Usage
340
+ {
341
+ isLoading ? <MyComponent.Skeleton /> : <MyComponent data={data} />
342
+ }
343
+ ```
344
+
345
+ Update skeletons when changing component layout structure, dimensions, or spacing.
346
+
347
+ ### 6. react-hook-form Integration
348
+
349
+ Most form components integrate with react-hook-form:
350
+
351
+ ```tsx
352
+ import { useForm, Controller } from 'react-hook-form'
353
+ import { Input, Select, DatePicker, Checkbox } from '@vkzstudio/muza-ui'
354
+
355
+ const { register, control, formState: { errors } } = useForm()
356
+
357
+ // Input - works with register directly
358
+ <Input
359
+ {...register('email', { required: 'Email is required' })}
360
+ label="Email"
361
+ error={!!errors.email}
362
+ hint={errors.email?.message as string}
363
+ />
364
+
365
+ // Select - use Controller
366
+ <Controller
367
+ name="country"
368
+ control={control}
369
+ rules={{ required: 'Country is required' }}
370
+ render={({ field }) => (
371
+ <Select
372
+ label="Country"
373
+ options={countries}
374
+ value={field.value}
375
+ onChange={field.onChange}
376
+ error={!!errors.country}
377
+ hint={errors.country?.message as string}
378
+ />
379
+ )}
380
+ />
381
+
382
+ // DatePicker - use Controller
383
+ <Controller
384
+ name="startDate"
385
+ control={control}
386
+ render={({ field }) => (
387
+ <DatePicker
388
+ mode="single"
389
+ label="Start Date"
390
+ value={field.value}
391
+ onChange={field.onChange}
392
+ error={!!errors.startDate}
393
+ />
394
+ )}
395
+ />
396
+
397
+ // Checkbox - use Controller for controlled state
398
+ <Controller
399
+ name="terms"
400
+ control={control}
401
+ rules={{ required: 'You must accept the terms' }}
402
+ render={({ field }) => (
403
+ <Checkbox
404
+ checked={field.value}
405
+ onCheckedChange={field.onChange}
406
+ label="I accept the terms"
407
+ />
408
+ )}
409
+ />
410
+ ```
411
+
412
+ ### 7. Styling Guidelines
413
+
414
+ - **DO NOT** recreate Muza UI components with custom CSS
415
+ - **DO** use the `className` prop to add utility classes when needed
416
+ - **DO** use design tokens for custom components that extend Muza UI
417
+
418
+ ```tsx
419
+ // Good - extending with utilities
420
+ <Button className="w-full mt-4" variant="primary">
421
+ Submit
422
+ </Button>
423
+
424
+ // Bad - recreating component styles
425
+ <button className="bg-purple-500 hover:bg-purple-600 px-4 py-2 rounded">
426
+ Submit
427
+ </button>
428
+ ```
429
+
430
+ ### 8. Form Patterns
431
+
432
+ Always use Muza UI form components:
433
+
434
+ ```tsx
435
+ // Good - using library components
436
+ import { Input, Button, Checkbox, Radio } from '@vkzstudio/muza-ui'
437
+
438
+ function Form() {
439
+ return (
440
+ <form>
441
+ <Input name="email" type="email" required />
442
+ <Checkbox id="terms" label="I agree to terms" />
443
+ <Radio value="option1" label="Option 1" />
444
+ <Button type="submit" variant="primary">
445
+ Submit
446
+ </Button>
447
+ </form>
448
+ )
449
+ }
450
+
451
+ // Bad - using native HTML elements
452
+ function Form() {
453
+ return (
454
+ <form>
455
+ <input type="email" />
456
+ <input type="checkbox" />
457
+ <button>Submit</button>
458
+ </form>
459
+ )
460
+ }
461
+ ```
462
+
463
+ ### 9. Icons
464
+
465
+ Import icons from Muza UI's Icons component (re-exports from `@solar-icons/react-perf`):
466
+
467
+ ```tsx
468
+ import { Button, SearchOutline, TrashBinOutline } from '@vkzstudio/muza-ui'
469
+
470
+ <Button icon={<SearchOutline />} iconPosition="start">
471
+ Search
472
+ </Button>
473
+
474
+ <Button icon={<TrashBinOutline />} danger>
475
+ Delete
476
+ </Button>
477
+ ```
478
+
479
+ The library also includes custom icons not in Solar Icons (e.g., `XClose`, `ChevronDown`). Check `Icons/CustomIcons` for the full list.
480
+
481
+ ### 10. Accessibility
482
+
483
+ All Muza UI components include proper ARIA attributes. Maintain accessibility when extending:
484
+
485
+ ```tsx
486
+ <Button aria-label="Save document" aria-busy={isLoading} disabled={isLoading}>
487
+ {isLoading ? 'Saving...' : 'Save'}
488
+ </Button>
489
+ ```
490
+
491
+ ## TypeScript Integration
492
+
493
+ The library is fully typed. Use the exported types:
494
+
495
+ ```tsx
496
+ import type { ButtonProps, ISelectProps, InputProps } from '@vkzstudio/muza-ui'
497
+
498
+ interface CustomButtonProps extends ButtonProps {
499
+ customProp?: boolean
500
+ }
501
+ ```
502
+
503
+ ## Performance Guidelines
504
+
505
+ 1. **Import only needed components** - Tree shaking is supported
506
+ 2. **Use lazy loading for large components** like Calendar or DatePicker
507
+ 3. **Memoize complex forms** when using many Muza UI inputs
508
+
509
+ ## DO NOT
510
+
511
+ - Create custom Button, Input, or other basic components
512
+ - Use native HTML form elements when Muza UI equivalents exist
513
+ - Override core component styles with !important
514
+ - Mix different UI libraries (Material-UI, Ant Design, etc.) with Muza UI
515
+ - Create custom toast/notification systems
516
+ - Use `<Alert variant="error">` - use `<Alert type="error">` instead
517
+
518
+ ## DO
519
+
520
+ - Use Muza UI components consistently throughout the app
521
+ - Extend components with className for spacing/layout
522
+ - Follow the established variant patterns
523
+ - Maintain accessibility standards
524
+ - Use Controller from react-hook-form for Select, DatePicker, Checkbox
525
+ - Report any missing components or features needed
526
+
527
+ ## Package Exports
528
+
529
+ The library supports multiple export paths for flexibility:
530
+
531
+ ```tsx
532
+ // Main components export
533
+ import { Button, Input } from '@vkzstudio/muza-ui'
534
+
535
+ // Styles
536
+ import '@vkzstudio/muza-ui/styles'
537
+
538
+ // Individual component exports (tree-shaking friendly)
539
+ import { Button } from '@vkzstudio/muza-ui/components/Button'
540
+
541
+ // Utilities
542
+ import { cn } from '@vkzstudio/muza-ui/utils'
543
+
544
+ // Global styles
545
+ import '@vkzstudio/muza-ui/globals.css'
546
+
547
+ // Third-party library styles (required for components like Lightbox)
548
+ import '@vkzstudio/muza-ui/3rd-parties.css'
549
+
550
+ // 3D Models (for LoginScreen)
551
+ import modelPath from '@vkzstudio/muza-ui/models/Login3D.glb'
552
+
553
+ // Individual style tokens (granular imports)
554
+ import '@vkzstudio/muza-ui/styles/token-colors.css'
555
+ import '@vkzstudio/muza-ui/styles/typography.css'
556
+ ```
557
+
558
+ ## Troubleshooting
559
+
560
+ If a component isn't rendering:
561
+
562
+ 1. Check that `@vkzstudio/muza-ui/styles` is imported in your entry file
563
+ 2. Verify React 18+ is installed
564
+ 3. Ensure all required peer dependencies are installed (see package.json)
565
+ 4. Verify the component is properly imported
566
+ 5. Check browser console for errors
567
+ 6. Ensure Tailwind CSS is properly configured if using custom utilities
568
+
569
+ **For LoginScreen 3D issues:**
570
+
571
+ - Ensure the GLB file is copied to `public/models/Login3D.glb`
572
+ - Check that `@react-three/fiber`, `@react-three/drei`, and `three` are installed
573
+ - The 3D scene only renders on desktop (screen width > 1024px)
574
+
575
+ **For Lightbox image gallery issues:**
576
+
577
+ - **REQUIRED:** Import third-party styles: `import '@vkzstudio/muza-ui/3rd-parties.css'` in your entry file
578
+ - Check that `photoswipe` and `react-photoswipe-gallery` peer dependencies are installed
579
+ - Ensure images have proper `width` and `height` props for the lightbox to display correctly
580
+
581
+ Remember: The goal is consistency. Use Muza UI components as designed to maintain a unified design system across the application.
package/llms.txt ADDED
@@ -0,0 +1,36 @@
1
+ # Muza UI
2
+
3
+ > React component library (48 components) built with Tailwind CSS 4, shadcn/ui patterns, and Radix primitives. Provides form inputs, layout components, feedback indicators, navigation, and date/time pickers.
4
+
5
+ ## Documentation
6
+
7
+ - [llms-full.md](llms-full.md): Integration guide with usage rules, compound component patterns, and react-hook-form examples
8
+ - [dist/index.d.ts](dist/index.d.ts): TypeScript definitions with JSDoc on all props
9
+
10
+ ## Quick Start
11
+
12
+ ```tsx
13
+ import { MuzaUIProvider, Button, Input } from '@vkzstudio/muza-ui'
14
+ import '@vkzstudio/muza-ui/styles'
15
+
16
+ <MuzaUIProvider locale="en">
17
+ <App />
18
+ </MuzaUIProvider>
19
+ ```
20
+
21
+ See llms-full.md for component APIs, compound component patterns, and react-hook-form integration.
22
+
23
+ ## Component Categories (48 total)
24
+
25
+ **Form & Input (14)**: Button, Input, PasswordInput, Textarea, Checkbox, Radio, Switch, Toggle, ToggleGroup, Select, MultiSelect, Searchbar, FileUpload, TextEditor
26
+ **Layout (5)**: Accordion, Flex, Typography, Dialog, Skeleton
27
+ **Data Display (4)**: DataTable, ExpandableTable, Reorderable, ReorderableTable
28
+ **Feedback (8)**: Alert, Chip, Tag, Loader, EmptyState, Toast, PinIndicator, SliderIndicators
29
+ **Navigation (8)**: Breadcrumb, DropdownMenu, SegmentedControl, SegmentedIconControl, Stepper, SwipeButton, EdgeButton, LanguageSwitcher
30
+ **Media (3)**: Avatar, Lightbox, Tooltip
31
+ **Date/Time (3)**: Calendar, DatePicker, TimePicker
32
+ **Specialized (3)**: Popover, LoginScreen, Icons
33
+
34
+ ## Optional
35
+
36
+ - [Storybook](https://muza-ui.vercel.app): Visual component examples with live demos
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkzstudio/muza-ui",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "React component library built with Vite, shadcn/ui, and Tailwind CSS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,8 @@
34
34
  ],
35
35
  "files": [
36
36
  "dist",
37
- "CLAUDE_CONSUMER.md"
37
+ "llms-full.md",
38
+ "llms.txt"
38
39
  ],
39
40
  "scripts": {
40
41
  "dev": "storybook dev -p 6006",
@@ -48,7 +49,7 @@
48
49
  "add-component:win": "powershell -ExecutionPolicy Bypass -File scripts/add-component.ps1",
49
50
  "format": "prettier --write .",
50
51
  "chromatic": "npx chromatic --project-token=chpt_23ce248b589dbff",
51
- "local-publish": "npm run build && npx shx rm -rf ../internal-benefits-frontend/node_modules/@vkzstudio/muza-ui/dist && npx shx cp -r dist ../internal-benefits-frontend/node_modules/@vkzstudio/muza-ui/dist"
52
+ "local-publish": "npm run build && npx shx rm -rf ../internal-benefits-frontend/node_modules/@vkzstudio/muza-ui/dist && npx shx cp -r dist ../internal-benefits-frontend/node_modules/@vkzstudio/muza-ui/dist && npx shx cp llms.txt llms-full.md ../internal-benefits-frontend/node_modules/@vkzstudio/muza-ui/"
52
53
  },
53
54
  "dependencies": {
54
55
  "react-day-picker": "^9.9.0",