solid-tom-ui 1.0.11 → 1.0.14

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 (118) 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.map +1 -1
  43. package/dist/components/select-zone/select-zone.js.map +1 -1
  44. package/dist/components/skeleton/skeleton.js.map +1 -1
  45. package/dist/components/slider/slider.js.map +1 -1
  46. package/dist/components/splitter/splitter.js.map +1 -1
  47. package/dist/components/steps/steps.js.map +1 -1
  48. package/dist/components/swap/swap.js.map +1 -1
  49. package/dist/components/switch/switch.js.map +1 -1
  50. package/dist/components/tab/tab.js.map +1 -1
  51. package/dist/components/table/table.js.map +1 -1
  52. package/dist/components/timeline/timeline.js.map +1 -1
  53. package/dist/components/toast/icons/ErrorIcon.js.map +1 -1
  54. package/dist/components/toast/icons/IconCircle.js.map +1 -1
  55. package/dist/components/toast/icons/InfoIcon.js.map +1 -1
  56. package/dist/components/toast/icons/LoaderIcon.js.map +1 -1
  57. package/dist/components/toast/icons/SuccessIcon.js.map +1 -1
  58. package/dist/components/toast/icons/WarningIcon.js.map +1 -1
  59. package/dist/components/toast/toast.js.map +1 -1
  60. package/dist/components/toast/toast.store.js.map +1 -1
  61. package/dist/components/tooltip/tooltip.js.map +1 -1
  62. package/dist/components/tour/tour.js.map +1 -1
  63. package/dist/components/upload/upload.js.map +1 -1
  64. package/dist/components/z-index/z-index.context.js.map +1 -1
  65. package/dist/components/z-index/z-index.js.map +1 -1
  66. package/dist/components/z-index/z-index.store.js.map +1 -1
  67. package/dist/components/z-index/z-index.types.js.map +1 -1
  68. package/dist/package.json +1 -1
  69. package/dist/skill/avatar.skill.md.txt +255 -255
  70. package/dist/skill/badge.skill.md.txt +223 -223
  71. package/dist/skill/breadcrumb.skill.md.txt +177 -177
  72. package/dist/skill/button.skill.md.txt +198 -198
  73. package/dist/skill/carousel.skill.md.txt +406 -406
  74. package/dist/skill/chat-bubble.skill.md.txt +342 -342
  75. package/dist/skill/checkbox.skill.md.txt +326 -326
  76. package/dist/skill/code-preview.skill.md.txt +240 -240
  77. package/dist/skill/collapse.skill.md.txt +329 -329
  78. package/dist/skill/context-menu.skill.md.txt +233 -233
  79. package/dist/skill/diff.skill.md.txt +244 -244
  80. package/dist/skill/divider.skill.md.txt +151 -151
  81. package/dist/skill/doc.skill.md.txt +191 -191
  82. package/dist/skill/drawer.skill.md.txt +157 -157
  83. package/dist/skill/dropdown.skill.md.txt +198 -198
  84. package/dist/skill/float-button.skill.md.txt +315 -315
  85. package/dist/skill/hover-3d-image.skill.md.txt +120 -120
  86. package/dist/skill/iframe.skill.md.txt +114 -114
  87. package/dist/skill/image-preview.skill.md.txt +162 -162
  88. package/dist/skill/indicator.skill.md.txt +60 -60
  89. package/dist/skill/input.skill.md.txt +489 -489
  90. package/dist/skill/loading.skill.md.txt +127 -127
  91. package/dist/skill/menu.skill.md.txt +476 -476
  92. package/dist/skill/modal.skill.md.txt +359 -359
  93. package/dist/skill/pagination.skill.md.txt +405 -405
  94. package/dist/skill/progress-bar.skill.md.txt +207 -207
  95. package/dist/skill/qr-code.skill.md.txt +136 -136
  96. package/dist/skill/rating.skill.md.txt +167 -167
  97. package/dist/skill/select-zone.skill.md.txt +93 -93
  98. package/dist/skill/select.skill.md.txt +663 -663
  99. package/dist/skill/skeleton.skill.md.txt +192 -192
  100. package/dist/skill/slider.skill.md.txt +404 -404
  101. package/dist/skill/splitter.skill.md.txt +411 -411
  102. package/dist/skill/steps.skill.md.txt +264 -264
  103. package/dist/skill/swap.skill.md.txt +139 -139
  104. package/dist/skill/switch.skill.md.txt +191 -191
  105. package/dist/skill/tab.skill.md.txt +484 -484
  106. package/dist/skill/table.example.header.md.txt +666 -666
  107. package/dist/skill/table.skill.md.txt +1407 -1407
  108. package/dist/skill/text-rotate.skill.md.txt +186 -186
  109. package/dist/skill/timeline.skill.md.txt +247 -247
  110. package/dist/skill/toast.skill.md.txt +531 -531
  111. package/dist/skill/tooltip.skill.md.txt +222 -222
  112. package/dist/skill/tour.skill.md.txt +156 -156
  113. package/dist/skill/upload.skill.md.txt +358 -358
  114. package/dist/utils/cn.js.map +1 -1
  115. package/dist/utils/element-tracker.js.map +1 -1
  116. package/dist/utils/helper.js.map +1 -1
  117. package/dist/utils/hoc.js.map +1 -1
  118. package/package.json +132 -133
@@ -1,93 +1,93 @@
1
- ## COMPONENT IDENTITY
2
- - **Import**: `import { SelectZone, SelectZoneItem } from 'solid-tom-ui';`
3
- - **Exports**: `SelectZone` (container), `SelectZoneItem` (item wrapper)
4
- - **Framework**: SolidJS
5
- - **Purpose**: Rubber band selection — drag to select multiple items simultaneously, like Notion/File Explorer
6
-
7
- ## Features
8
-
9
- - Selection rectangle appears on drag (≥ 4px), disappears on release
10
- - Supports all 4 drag directions (decreasing x/y included)
11
- - Auto-scroll when mouse reaches viewport edge; speed scales with distance
12
- - Hold Shift/Ctrl to add to existing selection without resetting
13
- - Single click on empty area → deselect all
14
- - Elements with `data-no-select` or `input/button/a` do not trigger drag
15
-
16
- ## API
17
-
18
- ### `<SelectZone>`
19
-
20
- | Prop | Type | Default | Description |
21
- |------|------|---------|-------------|
22
- | `onSelect` | `(keys: Set<string>) => void` | — | Callback when selection changes |
23
- | `additive` | `boolean` | `true` | Support Shift/Ctrl to add to selection |
24
- | `scrollThreshold` | `number` | `40` | Distance from viewport edge (px) to activate auto-scroll |
25
- | `scrollSpeed` | `number` | `12` | Max scroll speed (px/frame) |
26
- | `disabled` | `boolean` | `false` | Disable SelectZone |
27
- | `class` | `{ root?, overlay? }` | — | Override classes per slot |
28
-
29
- ### `<SelectZoneItem>`
30
-
31
- | Prop | Type | Description |
32
- |------|------|-------------|
33
- | `itemKey` | `string` | **Required** — unique key to track the item |
34
- | `children` | `(selected: () => boolean) => JSX.Element` | Render prop receiving `isSelected` accessor |
35
- | `class` | `string` | Extra classes on the wrapper div |
36
-
37
- ## Basic usage
38
-
39
- ```tsx
40
- import { SelectZone, SelectZoneItem } from 'solid-tom-ui';
41
-
42
- const items = ['a', 'b', 'c', 'd'];
43
-
44
- const MyComponent = () => {
45
- const [selected, setSelected] = createSignal(new Set<string>());
46
-
47
- return (
48
- <SelectZone onSelect={setSelected}>
49
- <div class="grid grid-cols-4 gap-2">
50
- <For each={items}>
51
- {item => (
52
- <SelectZoneItem itemKey={item}>
53
- {isSelected => (
54
- <div class={isSelected() ? 'bg-primary/20' : 'bg-base-100'}>
55
- {item}
56
- </div>
57
- )}
58
- </SelectZoneItem>
59
- )}
60
- </For>
61
- </div>
62
- </SelectZone>
63
- );
64
- };
65
- ```
66
-
67
- ## Excluding elements from drag
68
-
69
- Add `data-no-select` to elements that should not trigger drag:
70
-
71
- ```tsx
72
- <button data-no-select onClick={clearAll}>Deselect all</button>
73
- ```
74
-
75
- ## Override overlay style
76
-
77
- ```tsx
78
- <SelectZone
79
- class={{
80
- root: 'p-4 border rounded-xl',
81
- overlay: 'bg-blue-500/20 border-blue-500',
82
- }}
83
- >
84
- ...
85
- </SelectZone>
86
- ```
87
-
88
- ## Technical notes
89
-
90
- - Overlay uses `position: fixed` so it works correctly even when the container scrolls
91
- - AABB intersection detection: O(n) — suitable for up to a few thousand items
92
- - `startX/Y` is adjusted for scroll amount so the overlay stays accurate during auto-scroll
93
- - `SelectZoneItem` wrapper div has `data-select-key` to distinguish item clicks from empty-area clicks
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { SelectZone, SelectZoneItem } from 'solid-tom-ui';`
3
+ - **Exports**: `SelectZone` (container), `SelectZoneItem` (item wrapper)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Rubber band selection — drag to select multiple items simultaneously, like Notion/File Explorer
6
+
7
+ ## Features
8
+
9
+ - Selection rectangle appears on drag (≥ 4px), disappears on release
10
+ - Supports all 4 drag directions (decreasing x/y included)
11
+ - Auto-scroll when mouse reaches viewport edge; speed scales with distance
12
+ - Hold Shift/Ctrl to add to existing selection without resetting
13
+ - Single click on empty area → deselect all
14
+ - Elements with `data-no-select` or `input/button/a` do not trigger drag
15
+
16
+ ## API
17
+
18
+ ### `<SelectZone>`
19
+
20
+ | Prop | Type | Default | Description |
21
+ |------|------|---------|-------------|
22
+ | `onSelect` | `(keys: Set<string>) => void` | — | Callback when selection changes |
23
+ | `additive` | `boolean` | `true` | Support Shift/Ctrl to add to selection |
24
+ | `scrollThreshold` | `number` | `40` | Distance from viewport edge (px) to activate auto-scroll |
25
+ | `scrollSpeed` | `number` | `12` | Max scroll speed (px/frame) |
26
+ | `disabled` | `boolean` | `false` | Disable SelectZone |
27
+ | `class` | `{ root?, overlay? }` | — | Override classes per slot |
28
+
29
+ ### `<SelectZoneItem>`
30
+
31
+ | Prop | Type | Description |
32
+ |------|------|-------------|
33
+ | `itemKey` | `string` | **Required** — unique key to track the item |
34
+ | `children` | `(selected: () => boolean) => JSX.Element` | Render prop receiving `isSelected` accessor |
35
+ | `class` | `string` | Extra classes on the wrapper div |
36
+
37
+ ## Basic usage
38
+
39
+ ```tsx
40
+ import { SelectZone, SelectZoneItem } from 'solid-tom-ui';
41
+
42
+ const items = ['a', 'b', 'c', 'd'];
43
+
44
+ const MyComponent = () => {
45
+ const [selected, setSelected] = createSignal(new Set<string>());
46
+
47
+ return (
48
+ <SelectZone onSelect={setSelected}>
49
+ <div class="grid grid-cols-4 gap-2">
50
+ <For each={items}>
51
+ {item => (
52
+ <SelectZoneItem itemKey={item}>
53
+ {isSelected => (
54
+ <div class={isSelected() ? 'bg-primary/20' : 'bg-base-100'}>
55
+ {item}
56
+ </div>
57
+ )}
58
+ </SelectZoneItem>
59
+ )}
60
+ </For>
61
+ </div>
62
+ </SelectZone>
63
+ );
64
+ };
65
+ ```
66
+
67
+ ## Excluding elements from drag
68
+
69
+ Add `data-no-select` to elements that should not trigger drag:
70
+
71
+ ```tsx
72
+ <button data-no-select onClick={clearAll}>Deselect all</button>
73
+ ```
74
+
75
+ ## Override overlay style
76
+
77
+ ```tsx
78
+ <SelectZone
79
+ class={{
80
+ root: 'p-4 border rounded-xl',
81
+ overlay: 'bg-blue-500/20 border-blue-500',
82
+ }}
83
+ >
84
+ ...
85
+ </SelectZone>
86
+ ```
87
+
88
+ ## Technical notes
89
+
90
+ - Overlay uses `position: fixed` so it works correctly even when the container scrolls
91
+ - AABB intersection detection: O(n) — suitable for up to a few thousand items
92
+ - `startX/Y` is adjusted for scroll amount so the overlay stays accurate during auto-scroll
93
+ - `SelectZoneItem` wrapper div has `data-select-key` to distinguish item clicks from empty-area clicks