solid-tom-ui 1.0.11 → 1.0.15

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 (119) hide show
  1. package/README.md +246 -246
  2. package/dist/README.md +246 -246
  3. package/dist/components/avatar/avatar.js.map +1 -1
  4. package/dist/components/badge/badge.js.map +1 -1
  5. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  6. package/dist/components/button/button.js.map +1 -1
  7. package/dist/components/carousel/carousel.js.map +1 -1
  8. package/dist/components/chat-bubble/chatBubble.js.map +1 -1
  9. package/dist/components/checkbox/checkbox.js.map +1 -1
  10. package/dist/components/collapse/collapse.js.map +1 -1
  11. package/dist/components/context-menu/context-menu.js.map +1 -1
  12. package/dist/components/context-menu/context-menu.store.js.map +1 -1
  13. package/dist/components/divider/divider.js.map +1 -1
  14. package/dist/components/dropdown/dropdown.js.map +1 -1
  15. package/dist/components/dropdown/dropdown.store.js.map +1 -1
  16. package/dist/components/float-button/float-button.js.map +1 -1
  17. package/dist/components/hover-3d-image/hover-3d-image.js.map +1 -1
  18. package/dist/components/image-preview/image-preview.js.map +1 -1
  19. package/dist/components/input/input.js.map +1 -1
  20. package/dist/components/input/input.utils.js.map +1 -1
  21. package/dist/components/input/variants/input-color.js.map +1 -1
  22. package/dist/components/input/variants/input-date.js.map +1 -1
  23. package/dist/components/input/variants/input-number.d.ts.map +1 -1
  24. package/dist/components/input/variants/input-number.js +1 -1
  25. package/dist/components/input/variants/input-number.js.map +1 -1
  26. package/dist/components/input/variants/input-otp.js.map +1 -1
  27. package/dist/components/input/variants/input-password.js.map +1 -1
  28. package/dist/components/input/variants/input-radio.js.map +1 -1
  29. package/dist/components/input/variants/input-range.js.map +1 -1
  30. package/dist/components/input/variants/input-text.d.ts.map +1 -1
  31. package/dist/components/input/variants/input-text.js +1 -1
  32. package/dist/components/input/variants/input-text.js.map +1 -1
  33. package/dist/components/input/variants/input-textarea.js.map +1 -1
  34. package/dist/components/loading/loading.js.map +1 -1
  35. package/dist/components/mansory/mansory.js.map +1 -1
  36. package/dist/components/menu/menu.js.map +1 -1
  37. package/dist/components/modal/modal.js.map +1 -1
  38. package/dist/components/modal/modalContext.js.map +1 -1
  39. package/dist/components/pagination/pagination.js.map +1 -1
  40. package/dist/components/progress-bar/progress-bar.js.map +1 -1
  41. package/dist/components/qr-code/qr-code.js.map +1 -1
  42. package/dist/components/select/select.js +1 -1
  43. package/dist/components/select/select.js.map +1 -1
  44. package/dist/components/select-zone/select-zone.js.map +1 -1
  45. package/dist/components/skeleton/skeleton.js.map +1 -1
  46. package/dist/components/slider/slider.js.map +1 -1
  47. package/dist/components/splitter/splitter.js.map +1 -1
  48. package/dist/components/steps/steps.js.map +1 -1
  49. package/dist/components/swap/swap.js.map +1 -1
  50. package/dist/components/switch/switch.js.map +1 -1
  51. package/dist/components/tab/tab.js.map +1 -1
  52. package/dist/components/table/table.js.map +1 -1
  53. package/dist/components/timeline/timeline.js.map +1 -1
  54. package/dist/components/toast/icons/ErrorIcon.js.map +1 -1
  55. package/dist/components/toast/icons/IconCircle.js.map +1 -1
  56. package/dist/components/toast/icons/InfoIcon.js.map +1 -1
  57. package/dist/components/toast/icons/LoaderIcon.js.map +1 -1
  58. package/dist/components/toast/icons/SuccessIcon.js.map +1 -1
  59. package/dist/components/toast/icons/WarningIcon.js.map +1 -1
  60. package/dist/components/toast/toast.js.map +1 -1
  61. package/dist/components/toast/toast.store.js.map +1 -1
  62. package/dist/components/tooltip/tooltip.js.map +1 -1
  63. package/dist/components/tour/tour.js.map +1 -1
  64. package/dist/components/upload/upload.js.map +1 -1
  65. package/dist/components/z-index/z-index.context.js.map +1 -1
  66. package/dist/components/z-index/z-index.js.map +1 -1
  67. package/dist/components/z-index/z-index.store.js.map +1 -1
  68. package/dist/components/z-index/z-index.types.js.map +1 -1
  69. package/dist/package.json +1 -1
  70. package/dist/skill/avatar.skill.md.txt +255 -255
  71. package/dist/skill/badge.skill.md.txt +223 -223
  72. package/dist/skill/breadcrumb.skill.md.txt +177 -177
  73. package/dist/skill/button.skill.md.txt +198 -198
  74. package/dist/skill/carousel.skill.md.txt +406 -406
  75. package/dist/skill/chat-bubble.skill.md.txt +342 -342
  76. package/dist/skill/checkbox.skill.md.txt +326 -326
  77. package/dist/skill/code-preview.skill.md.txt +240 -240
  78. package/dist/skill/collapse.skill.md.txt +329 -329
  79. package/dist/skill/context-menu.skill.md.txt +233 -233
  80. package/dist/skill/diff.skill.md.txt +244 -244
  81. package/dist/skill/divider.skill.md.txt +151 -151
  82. package/dist/skill/doc.skill.md.txt +191 -191
  83. package/dist/skill/drawer.skill.md.txt +157 -157
  84. package/dist/skill/dropdown.skill.md.txt +198 -198
  85. package/dist/skill/float-button.skill.md.txt +315 -315
  86. package/dist/skill/hover-3d-image.skill.md.txt +120 -120
  87. package/dist/skill/iframe.skill.md.txt +114 -114
  88. package/dist/skill/image-preview.skill.md.txt +162 -162
  89. package/dist/skill/indicator.skill.md.txt +60 -60
  90. package/dist/skill/input.skill.md.txt +489 -489
  91. package/dist/skill/loading.skill.md.txt +127 -127
  92. package/dist/skill/menu.skill.md.txt +476 -476
  93. package/dist/skill/modal.skill.md.txt +359 -359
  94. package/dist/skill/pagination.skill.md.txt +405 -405
  95. package/dist/skill/progress-bar.skill.md.txt +207 -207
  96. package/dist/skill/qr-code.skill.md.txt +136 -136
  97. package/dist/skill/rating.skill.md.txt +167 -167
  98. package/dist/skill/select-zone.skill.md.txt +93 -93
  99. package/dist/skill/select.skill.md.txt +663 -663
  100. package/dist/skill/skeleton.skill.md.txt +192 -192
  101. package/dist/skill/slider.skill.md.txt +404 -404
  102. package/dist/skill/splitter.skill.md.txt +411 -411
  103. package/dist/skill/steps.skill.md.txt +264 -264
  104. package/dist/skill/swap.skill.md.txt +139 -139
  105. package/dist/skill/switch.skill.md.txt +191 -191
  106. package/dist/skill/tab.skill.md.txt +484 -484
  107. package/dist/skill/table.example.header.md.txt +666 -666
  108. package/dist/skill/table.skill.md.txt +1407 -1407
  109. package/dist/skill/text-rotate.skill.md.txt +186 -186
  110. package/dist/skill/timeline.skill.md.txt +247 -247
  111. package/dist/skill/toast.skill.md.txt +531 -531
  112. package/dist/skill/tooltip.skill.md.txt +222 -222
  113. package/dist/skill/tour.skill.md.txt +156 -156
  114. package/dist/skill/upload.skill.md.txt +358 -358
  115. package/dist/utils/cn.js.map +1 -1
  116. package/dist/utils/element-tracker.js.map +1 -1
  117. package/dist/utils/helper.js.map +1 -1
  118. package/dist/utils/hoc.js.map +1 -1
  119. package/package.json +132 -133
@@ -1,151 +1,151 @@
1
- ## COMPONENT IDENTITY
2
- - **Import**: `import { Divider } from 'solid-tom-ui';`
3
- - **Export**: `Divider` (named export)
4
- - **Framework**: SolidJS
5
- - **Purpose**: Flexible visual separator — renders a plain line or a line with centered content (text, icons, badges); supports horizontal and vertical orientations
6
-
7
- ## Props
8
-
9
- | Prop | Type | Default | Description |
10
- | ------------- | --------------------------------------------- | -------------- | --------------------------------------------------------------------------- |
11
- | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Direction of the dividing line |
12
- | `variant` | `'solid' \| 'dashed' \| 'dotted'` | `'solid'` | Border style of the line |
13
- | `align` | `'start' \| 'center' \| 'end'` | `'center'` | Position of children content along the line (only applies when children is present) |
14
- | `thickness` | `1 \| 2 \| 3 \| 4` | `1` | Line thickness in pixels |
15
- | `color` | `BaseColorProps` | — | Màu hệ thống cho đường kẻ và text content — dùng `--color` CSS variable |
16
- | `class` | `Partial<Record<'root' \| 'line' \| 'content', string>>` | — | Override classes for individual slots (see Class Slots below) |
17
- | `children` | `JSX.Element` | — | Content rendered between the two line segments |
18
-
19
- ## Class Slots
20
-
21
- `Divider` exposes a unified `class` prop with three named slots:
22
-
23
- | Slot | Element | When available |
24
- | --------- | -------------------------------------------- | ------------------ |
25
- | `root` | `<hr>` (plain) or `<div>` (with children) | Always |
26
- | `line` | Both leading and trailing line segments | Only with children |
27
- | `content` | `<span>` wrapping children content | Only with children |
28
-
29
- > **CSS encoding**: internal CSS classes use short encoded names (e.g. `dv01`, `dv02`) per project convention.
30
-
31
- ## Render Behavior
32
-
33
- The component has two distinct render paths:
34
-
35
- - **No children** → renders a single `<hr>` element (plain line, zero markup overhead).
36
- - **With children** → renders a `<div>` containing a leading line, a content `<span>`, and a trailing line. The `align` prop controls how flex space is distributed between the two segments.
37
-
38
- ## Basic Usage
39
-
40
- ```tsx
41
- // Plain horizontal line
42
- <Divider />
43
-
44
- // Dashed / dotted
45
- <Divider variant="dashed" />
46
- <Divider variant="dotted" />
47
-
48
- // With label
49
- <Divider>OR</Divider>
50
- <Divider>Section Title</Divider>
51
- ```
52
-
53
- ## Alignment
54
-
55
- ```tsx
56
- <Divider align="start">Left-aligned label</Divider>
57
- <Divider align="center">Center (default)</Divider>
58
- <Divider align="end">Right-aligned label</Divider>
59
- ```
60
-
61
- ## Thickness
62
-
63
- ```tsx
64
- <Divider thickness={1}>1px (default)</Divider>
65
- <Divider thickness={2}>2px</Divider>
66
- <Divider thickness={3}>3px</Divider>
67
- <Divider thickness={4}>4px</Divider>
68
- ```
69
-
70
- ## Custom Line Color
71
-
72
- Use `class={{ line: '...' }}` to override the line color. This class is applied to **both** line segments.
73
-
74
- ```tsx
75
- <Divider class={{ line: 'border-primary/50' }}>Primary</Divider>
76
- <Divider class={{ line: 'border-error/60' }} variant="dotted">Error</Divider>
77
- <Divider class={{ line: 'border-amber-400/60' }} thickness={2}>Amber</Divider>
78
- ```
79
-
80
- ## Custom Children (Icons, Badges)
81
-
82
- Any JSX can be passed as children:
83
-
84
- ```tsx
85
- // Badge
86
- <Divider class={{ line: 'border-primary/40' }}>
87
- <span class="bg-primary/10 text-primary rounded-full px-3 py-0.5 text-xs font-semibold">
88
- New Section
89
- </span>
90
- </Divider>
91
-
92
- // Icon + text
93
- <Divider class={{ line: 'border-success/40' }} variant="dashed">
94
- <span class="text-success flex items-center gap-1.5 text-sm font-medium">
95
- <CheckIcon class="h-3.5 w-3.5" />
96
- Completed
97
- </span>
98
- </Divider>
99
- ```
100
-
101
- ## Vertical Divider
102
-
103
- Use `orientation="vertical"` to create a vertical separator inside a flex row. The parent **must** use `items-stretch` (or set an explicit height) for the line to fill the available space.
104
-
105
- ```tsx
106
- // Plain vertical line between items
107
- <div class="flex items-stretch gap-4">
108
- <span>Left</span>
109
- <Divider orientation="vertical" />
110
- <span>Right</span>
111
- </div>
112
-
113
- // Vertical with label (parent needs an explicit height)
114
- <div class="flex h-32 items-stretch gap-4">
115
- <span class="flex items-center">Panel A</span>
116
- <Divider orientation="vertical" variant="dashed">OR</Divider>
117
- <span class="flex items-center">Panel B</span>
118
- </div>
119
-
120
- // Colored vertical line
121
- <Divider orientation="vertical" class={{ line: 'border-primary/40' }} />
122
- ```
123
-
124
- ## Real-world Example — Login Form
125
-
126
- ```tsx
127
- <div class="space-y-4">
128
- <button class="btn btn-primary w-full">Continue with Google</button>
129
- <button class="btn btn-neutral btn-outline w-full">Continue with GitHub</button>
130
- <Divider>OR</Divider>
131
- <input class="input input-bordered w-full" placeholder="Email address" />
132
- <button class="btn btn-primary w-full">Sign in</button>
133
- </div>
134
- ```
135
-
136
- ## Accessibility
137
-
138
- - Both render paths emit `role="separator"` and `aria-orientation` matching the `orientation` prop.
139
- - Content inside `children` is wrapped in a `<span>` with `select-none` to prevent accidental text selection of decorative labels.
140
-
141
- ## Common Mistakes
142
-
143
- | Mistake | Fix |
144
- | --- | --- |
145
- | Using `class="border-primary"` as string | `class` is now a slot object — use `class={{ root: '...' }}` |
146
- | Coloring lines without effect | Use `class={{ line: 'border-primary/50' }}`, not `class={{ root: '...' }}` |
147
- | Vertical divider not visible | Ensure parent has `items-stretch` or a fixed height |
148
- | `align` has no effect | `align` only works when `children` is provided |
149
- | `line` / `content` slots not applying | These slots only apply when `children` is present |
150
-
151
- > **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { Divider } from 'solid-tom-ui';`
3
+ - **Export**: `Divider` (named export)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Flexible visual separator — renders a plain line or a line with centered content (text, icons, badges); supports horizontal and vertical orientations
6
+
7
+ ## Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ | ------------- | --------------------------------------------- | -------------- | --------------------------------------------------------------------------- |
11
+ | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Direction of the dividing line |
12
+ | `variant` | `'solid' \| 'dashed' \| 'dotted'` | `'solid'` | Border style of the line |
13
+ | `align` | `'start' \| 'center' \| 'end'` | `'center'` | Position of children content along the line (only applies when children is present) |
14
+ | `thickness` | `1 \| 2 \| 3 \| 4` | `1` | Line thickness in pixels |
15
+ | `color` | `BaseColorProps` | — | Màu hệ thống cho đường kẻ và text content — dùng `--color` CSS variable |
16
+ | `class` | `Partial<Record<'root' \| 'line' \| 'content', string>>` | — | Override classes for individual slots (see Class Slots below) |
17
+ | `children` | `JSX.Element` | — | Content rendered between the two line segments |
18
+
19
+ ## Class Slots
20
+
21
+ `Divider` exposes a unified `class` prop with three named slots:
22
+
23
+ | Slot | Element | When available |
24
+ | --------- | -------------------------------------------- | ------------------ |
25
+ | `root` | `<hr>` (plain) or `<div>` (with children) | Always |
26
+ | `line` | Both leading and trailing line segments | Only with children |
27
+ | `content` | `<span>` wrapping children content | Only with children |
28
+
29
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `dv01`, `dv02`) per project convention.
30
+
31
+ ## Render Behavior
32
+
33
+ The component has two distinct render paths:
34
+
35
+ - **No children** → renders a single `<hr>` element (plain line, zero markup overhead).
36
+ - **With children** → renders a `<div>` containing a leading line, a content `<span>`, and a trailing line. The `align` prop controls how flex space is distributed between the two segments.
37
+
38
+ ## Basic Usage
39
+
40
+ ```tsx
41
+ // Plain horizontal line
42
+ <Divider />
43
+
44
+ // Dashed / dotted
45
+ <Divider variant="dashed" />
46
+ <Divider variant="dotted" />
47
+
48
+ // With label
49
+ <Divider>OR</Divider>
50
+ <Divider>Section Title</Divider>
51
+ ```
52
+
53
+ ## Alignment
54
+
55
+ ```tsx
56
+ <Divider align="start">Left-aligned label</Divider>
57
+ <Divider align="center">Center (default)</Divider>
58
+ <Divider align="end">Right-aligned label</Divider>
59
+ ```
60
+
61
+ ## Thickness
62
+
63
+ ```tsx
64
+ <Divider thickness={1}>1px (default)</Divider>
65
+ <Divider thickness={2}>2px</Divider>
66
+ <Divider thickness={3}>3px</Divider>
67
+ <Divider thickness={4}>4px</Divider>
68
+ ```
69
+
70
+ ## Custom Line Color
71
+
72
+ Use `class={{ line: '...' }}` to override the line color. This class is applied to **both** line segments.
73
+
74
+ ```tsx
75
+ <Divider class={{ line: 'border-primary/50' }}>Primary</Divider>
76
+ <Divider class={{ line: 'border-error/60' }} variant="dotted">Error</Divider>
77
+ <Divider class={{ line: 'border-amber-400/60' }} thickness={2}>Amber</Divider>
78
+ ```
79
+
80
+ ## Custom Children (Icons, Badges)
81
+
82
+ Any JSX can be passed as children:
83
+
84
+ ```tsx
85
+ // Badge
86
+ <Divider class={{ line: 'border-primary/40' }}>
87
+ <span class="bg-primary/10 text-primary rounded-full px-3 py-0.5 text-xs font-semibold">
88
+ New Section
89
+ </span>
90
+ </Divider>
91
+
92
+ // Icon + text
93
+ <Divider class={{ line: 'border-success/40' }} variant="dashed">
94
+ <span class="text-success flex items-center gap-1.5 text-sm font-medium">
95
+ <CheckIcon class="h-3.5 w-3.5" />
96
+ Completed
97
+ </span>
98
+ </Divider>
99
+ ```
100
+
101
+ ## Vertical Divider
102
+
103
+ Use `orientation="vertical"` to create a vertical separator inside a flex row. The parent **must** use `items-stretch` (or set an explicit height) for the line to fill the available space.
104
+
105
+ ```tsx
106
+ // Plain vertical line between items
107
+ <div class="flex items-stretch gap-4">
108
+ <span>Left</span>
109
+ <Divider orientation="vertical" />
110
+ <span>Right</span>
111
+ </div>
112
+
113
+ // Vertical with label (parent needs an explicit height)
114
+ <div class="flex h-32 items-stretch gap-4">
115
+ <span class="flex items-center">Panel A</span>
116
+ <Divider orientation="vertical" variant="dashed">OR</Divider>
117
+ <span class="flex items-center">Panel B</span>
118
+ </div>
119
+
120
+ // Colored vertical line
121
+ <Divider orientation="vertical" class={{ line: 'border-primary/40' }} />
122
+ ```
123
+
124
+ ## Real-world Example — Login Form
125
+
126
+ ```tsx
127
+ <div class="space-y-4">
128
+ <button class="btn btn-primary w-full">Continue with Google</button>
129
+ <button class="btn btn-neutral btn-outline w-full">Continue with GitHub</button>
130
+ <Divider>OR</Divider>
131
+ <input class="input input-bordered w-full" placeholder="Email address" />
132
+ <button class="btn btn-primary w-full">Sign in</button>
133
+ </div>
134
+ ```
135
+
136
+ ## Accessibility
137
+
138
+ - Both render paths emit `role="separator"` and `aria-orientation` matching the `orientation` prop.
139
+ - Content inside `children` is wrapped in a `<span>` with `select-none` to prevent accidental text selection of decorative labels.
140
+
141
+ ## Common Mistakes
142
+
143
+ | Mistake | Fix |
144
+ | --- | --- |
145
+ | Using `class="border-primary"` as string | `class` is now a slot object — use `class={{ root: '...' }}` |
146
+ | Coloring lines without effect | Use `class={{ line: 'border-primary/50' }}`, not `class={{ root: '...' }}` |
147
+ | Vertical divider not visible | Ensure parent has `items-stretch` or a fixed height |
148
+ | `align` has no effect | `align` only works when `children` is provided |
149
+ | `line` / `content` slots not applying | These slots only apply when `children` is present |
150
+
151
+ > **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.