@sableui/react 0.18.0 → 0.19.0

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 (84) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/bin/sable.mjs +108 -14
  3. package/dist/{_contract-CDa9-NdB.d.ts → _contract-DlklV0Im.d.ts} +2 -2
  4. package/dist/blocks/index.d.ts +1 -1
  5. package/dist/components/avatar/avatar.js +16 -7
  6. package/dist/components/avatar/avatar.meta.js +43 -10
  7. package/dist/components/avatar/avatar.variants.js +26 -2
  8. package/dist/components/collapsible/collapsible.js +6 -5
  9. package/dist/components/collapsible/collapsible.meta.js +14 -5
  10. package/dist/components/data-table/data-table.js +132 -45
  11. package/dist/components/data-table/data-table.meta.js +63 -4
  12. package/dist/components/date-picker/date-picker.js +13 -6
  13. package/dist/components/date-picker/date-picker.meta.js +22 -0
  14. package/dist/components/menu/menu.js +2 -0
  15. package/dist/components/menu/menu.meta.js +2 -2
  16. package/dist/components/panel-group/panel-group.js +17 -1
  17. package/dist/components/panel-group/panel-group.meta.js +43 -3
  18. package/dist/components/side-nav/side-nav.variants.js +8 -3
  19. package/dist/components/sidebar/index.js +4 -0
  20. package/dist/components/sidebar/sidebar.js +90 -11
  21. package/dist/components/sidebar/sidebar.meta.js +38 -4
  22. package/dist/components/table/table.js +7 -3
  23. package/dist/components/tabs/tabs.js +10 -2
  24. package/dist/components/tabs/tabs.meta.js +4 -0
  25. package/dist/components/workspace/workspace.js +13 -3
  26. package/dist/components/workspace/workspace.meta.js +109 -1
  27. package/dist/file-hashes.json +53 -49
  28. package/dist/foundations/typography.js +13 -0
  29. package/dist/icon/Icon.js +21 -2
  30. package/dist/icon/index.d.ts +36 -1
  31. package/dist/icon/index.js +5 -0
  32. package/dist/icon/names.js +240 -0
  33. package/dist/icon-sets/reicon.js +19 -1
  34. package/dist/index.d.ts +272 -50
  35. package/dist/index.js +11 -1
  36. package/dist/lib/chart/heat.js +1 -1
  37. package/dist/lib/cn.js +1 -0
  38. package/dist/lib/use-media-query.js +41 -0
  39. package/dist/{meta-DX5r5wQL.d.ts → meta-Dfm9AExe.d.ts} +6 -0
  40. package/dist/patterns/dashboard-page.js +23 -17
  41. package/dist/patterns/index.d.ts +7 -2
  42. package/dist/patterns/index.js +5 -1
  43. package/dist/patterns/tracker-page.js +392 -0
  44. package/dist/patterns/tracker-page.meta.js +40 -0
  45. package/dist/presets/index.d.ts +1 -1
  46. package/dist/styles.css +179 -74
  47. package/dist/{theme-provider-BydfM5Z0.d.ts → theme-provider-BUBealk_.d.ts} +1 -1
  48. package/dist/themes/_contract.js +9 -1
  49. package/dist/themes/atelier/index.d.ts +1 -1
  50. package/dist/themes/ember/index.d.ts +1 -1
  51. package/dist/themes/index.d.ts +2 -2
  52. package/dist/themes/meridian/index.d.ts +1 -1
  53. package/dist/themes/poppy/index.d.ts +1 -1
  54. package/dist/themes/prism/index.d.ts +1 -1
  55. package/dist/themes/sable/index.d.ts +1 -1
  56. package/dist/themes/verdant/index.d.ts +1 -1
  57. package/llms/components/avatar.md +32 -9
  58. package/llms/components/collapsible.md +12 -4
  59. package/llms/components/data-table.md +40 -3
  60. package/llms/components/date-picker.md +15 -1
  61. package/llms/components/menu.md +1 -1
  62. package/llms/components/panel-group.md +34 -2
  63. package/llms/components/sidebar.md +17 -4
  64. package/llms/components/tabs.md +1 -0
  65. package/llms/components/workspace.md +81 -1
  66. package/llms/foundations/typography.md +4 -1
  67. package/llms/patterns/dashboard-page.md +18 -15
  68. package/llms/patterns/tracker-page.md +450 -0
  69. package/llms/reference/token-intent.md +3 -1
  70. package/llms/reference/utilities.md +4 -1
  71. package/llms/tasks/auditing-an-app.md +4 -1
  72. package/llms/tasks/building-a-page.md +3 -2
  73. package/llms/tasks/building-a-tool.md +101 -5
  74. package/llms/tasks/building-with-sable.md +11 -3
  75. package/llms/tasks/creating-a-preset.md +9 -0
  76. package/llms-full.txt +843 -54
  77. package/llms.txt +8 -7
  78. package/package.json +2 -1
  79. package/registry.json +491 -36
  80. package/scripts/adoption.mjs +15 -2
  81. package/scripts/app-css.mjs +129 -0
  82. package/scripts/grade.mjs +161 -2
  83. package/scripts/lint-rules.mjs +126 -0
  84. package/skills/sable/SKILL.md +33 -4
@@ -0,0 +1,240 @@
1
+ // src/icon/names.ts
2
+ var ICON_NAMES = [
3
+ "heart",
4
+ "comment",
5
+ "share",
6
+ "gem",
7
+ "image-stack",
8
+ "home",
9
+ "bell",
10
+ "gear",
11
+ "user",
12
+ "search",
13
+ "plus",
14
+ "minus",
15
+ "check",
16
+ "xmark",
17
+ "chevron-down",
18
+ "chevron-up",
19
+ "chevron-left",
20
+ "chevron-right",
21
+ "arrow-up",
22
+ "arrow-up-right",
23
+ "expand",
24
+ "eye",
25
+ "eye-off",
26
+ "external",
27
+ "spinner",
28
+ "ellipsis",
29
+ "info",
30
+ "warning",
31
+ "circle-check",
32
+ "calendar",
33
+ "copy",
34
+ "file",
35
+ "folder",
36
+ "sun",
37
+ "moon",
38
+ "desktop",
39
+ "lock",
40
+ "list",
41
+ "bars",
42
+ "grid",
43
+ "layout",
44
+ "book",
45
+ "component",
46
+ "sparkles",
47
+ "play",
48
+ "pause",
49
+ "next",
50
+ "previous",
51
+ "arrow-down",
52
+ "arrow-left",
53
+ "arrow-right",
54
+ "clock",
55
+ "send",
56
+ "trash",
57
+ "edit",
58
+ "download",
59
+ "upload",
60
+ "link",
61
+ "inbox",
62
+ "mail",
63
+ "logout",
64
+ "star",
65
+ "refresh",
66
+ "filter",
67
+ "bold",
68
+ "italic",
69
+ "eyedropper",
70
+ "stop",
71
+ "key",
72
+ "wallet",
73
+ "thumbs-up",
74
+ "thumbs-down",
75
+ "shuffle",
76
+ "repeat",
77
+ "repeat-one",
78
+ "volume",
79
+ "volume-low",
80
+ "volume-off",
81
+ "queue",
82
+ "music",
83
+ "tag",
84
+ "paperclip",
85
+ "chart",
86
+ "flag",
87
+ "at-sign",
88
+ "replay",
89
+ "motion",
90
+ "emoji",
91
+ "briefcase",
92
+ "layers",
93
+ "microphone",
94
+ "video",
95
+ "broadcast",
96
+ "newspaper",
97
+ "palette",
98
+ "gamepad",
99
+ // Work-tracking chrome: a team list, a backlog, a board view, display
100
+ // options, help and a collapsible sidebar. Added when an issue tracker
101
+ // asked for users/archive/columns/sliders/help/menu, got nothing back,
102
+ // and showed one glyph for Inbox and Backlog.
103
+ "users",
104
+ "archive",
105
+ "kanban",
106
+ "sliders",
107
+ "help",
108
+ "sidebar",
109
+ // A control that opens a menu of choices above or below it: an account
110
+ // row at the foot of a rail, a workspace switcher.
111
+ "chevron-up-down"
112
+ ];
113
+ var ICON_ALIASES = {
114
+ // Lucide
115
+ "chevrons-up-down": "chevron-up-down",
116
+ "check-circle": "circle-check",
117
+ "check-circle-2": "circle-check",
118
+ "circle-check-big": "circle-check",
119
+ settings: "gear",
120
+ "settings-2": "sliders",
121
+ cog: "gear",
122
+ x: "xmark",
123
+ close: "xmark",
124
+ "x-circle": "xmark",
125
+ "more-horizontal": "ellipsis",
126
+ "more-vertical": "ellipsis",
127
+ more: "ellipsis",
128
+ "dots-horizontal": "ellipsis",
129
+ "ellipsis-horizontal": "ellipsis",
130
+ "message-square": "comment",
131
+ "message-circle": "comment",
132
+ message: "comment",
133
+ messages: "comment",
134
+ chat: "comment",
135
+ menu: "bars",
136
+ hamburger: "bars",
137
+ "help-circle": "help",
138
+ "circle-help": "help",
139
+ question: "help",
140
+ "circle-question": "help",
141
+ "alert-triangle": "warning",
142
+ "triangle-alert": "warning",
143
+ "info-circle": "info",
144
+ "circle-info": "info",
145
+ "external-link": "external",
146
+ loader: "spinner",
147
+ "loader-2": "spinner",
148
+ "loader-circle": "spinner",
149
+ "log-out": "logout",
150
+ "sign-out": "logout",
151
+ monitor: "desktop",
152
+ laptop: "desktop",
153
+ "layout-grid": "grid",
154
+ "layout-dashboard": "layout",
155
+ "file-text": "file",
156
+ document: "file",
157
+ "rotate-cw": "refresh",
158
+ "rotate-ccw": "refresh",
159
+ "refresh-cw": "refresh",
160
+ "refresh-ccw": "refresh",
161
+ funnel: "filter",
162
+ "user-circle": "user",
163
+ "circle-user": "user",
164
+ person: "user",
165
+ people: "users",
166
+ team: "users",
167
+ "user-group": "users",
168
+ "users-round": "users",
169
+ box: "archive",
170
+ "archive-box": "archive",
171
+ columns: "kanban",
172
+ "columns-3": "kanban",
173
+ board: "kanban",
174
+ "square-kanban": "kanban",
175
+ "sliders-horizontal": "sliders",
176
+ "sliders-vertical": "sliders",
177
+ adjustments: "sliders",
178
+ "panel-left": "sidebar",
179
+ "sidebar-left": "sidebar",
180
+ "calendar-days": "calendar",
181
+ house: "home",
182
+ pencil: "edit",
183
+ "edit-2": "edit",
184
+ "edit-3": "edit",
185
+ "square-pen": "edit",
186
+ "trash-2": "trash",
187
+ delete: "trash",
188
+ envelope: "mail",
189
+ "arrow-path": "refresh",
190
+ "eye-slash": "eye-off",
191
+ "lock-closed": "lock",
192
+ "paper-airplane": "send",
193
+ "paper-clip": "paperclip",
194
+ "arrow-down-tray": "download",
195
+ "arrow-up-tray": "upload",
196
+ "magnifying-glass": "search",
197
+ "cog-6-tooth": "gear",
198
+ "bars-3": "bars",
199
+ "chat-bubble-left": "comment",
200
+ "exclamation-triangle": "warning",
201
+ "information-circle": "info",
202
+ "question-mark-circle": "help",
203
+ "adjustments-horizontal": "sliders",
204
+ "squares-2x2": "grid",
205
+ "view-columns": "kanban",
206
+ "arrow-top-right-on-square": "external",
207
+ "computer-desktop": "desktop",
208
+ "x-mark": "xmark",
209
+ "document-text": "file"
210
+ };
211
+ function resolveIconAlias(name) {
212
+ const target = ICON_ALIASES[name];
213
+ return target && target !== name ? target : void 0;
214
+ }
215
+ function distance(a, b) {
216
+ const row = Array.from({ length: b.length + 1 }, (_, i) => i);
217
+ for (let i = 1; i <= a.length; i++) {
218
+ let previous = row[0];
219
+ row[0] = i;
220
+ for (let j = 1; j <= b.length; j++) {
221
+ const current = row[j];
222
+ row[j] = Math.min(row[j] + 1, row[j - 1] + 1, previous + (a[i - 1] === b[j - 1] ? 0 : 1));
223
+ previous = current;
224
+ }
225
+ }
226
+ return row[b.length];
227
+ }
228
+ function nearestIconNames(name, limit = 3) {
229
+ const parts = new Set(name.toLowerCase().split(/[-_\s]+/).filter(Boolean));
230
+ return [...ICON_NAMES].map((candidate) => {
231
+ const shared = candidate.split("-").some((part) => parts.has(part));
232
+ return { candidate, score: distance(name.toLowerCase(), candidate) - (shared ? 3 : 0) };
233
+ }).sort((a, b) => a.score - b.score).slice(0, limit).map(({ candidate }) => candidate);
234
+ }
235
+ export {
236
+ ICON_ALIASES,
237
+ ICON_NAMES,
238
+ nearestIconNames,
239
+ resolveIconAlias
240
+ };
@@ -21,6 +21,7 @@ import { ChevronRight } from "reicon-react/icons/ChevronRight";
21
21
  import { ArrowUp } from "reicon-react/icons/ArrowUp";
22
22
  import { ArrowUpRight } from "reicon-react/icons/ArrowUpRight";
23
23
  import { ChevronUp } from "reicon-react/icons/ChevronUp";
24
+ import { ChevronExpandY } from "reicon-react/icons/ChevronExpandY";
24
25
  import { Comment } from "reicon-react/icons/Comment";
25
26
  import { Component2 } from "reicon-react/icons/Component2";
26
27
  import { Copy } from "reicon-react/icons/Copy";
@@ -95,6 +96,12 @@ import { SignalStream } from "reicon-react/icons/SignalStream";
95
96
  import { Doc2 } from "reicon-react/icons/Doc2";
96
97
  import { Palette2 } from "reicon-react/icons/Palette2";
97
98
  import { Gamepad } from "reicon-react/icons/Gamepad";
99
+ import { Users } from "reicon-react/icons/Users";
100
+ import { Archive } from "reicon-react/icons/Archive";
101
+ import { Kanban } from "reicon-react/icons/Kanban";
102
+ import { Sliders } from "reicon-react/icons/Sliders";
103
+ import { HelpCircle } from "reicon-react/icons/HelpCircle";
104
+ import { SidebarLeft } from "reicon-react/icons/SidebarLeft";
98
105
  import { memo } from "react";
99
106
  import { jsx } from "react/jsx-runtime";
100
107
  var ICONS = {
@@ -115,6 +122,7 @@ var ICONS = {
115
122
  xmark: Xmark,
116
123
  "chevron-down": ChevronDown,
117
124
  "chevron-up": ChevronUp,
125
+ "chevron-up-down": ChevronExpandY,
118
126
  "arrow-up": ArrowUp,
119
127
  "arrow-up-right": ArrowUpRight,
120
128
  "chevron-left": ChevronLeft,
@@ -213,7 +221,17 @@ var ICONS = {
213
221
  broadcast: SignalStream,
214
222
  newspaper: Doc2,
215
223
  palette: Palette2,
216
- gamepad: Gamepad
224
+ gamepad: Gamepad,
225
+ // Added when an issue tracker had no glyph for its team list, backlog,
226
+ // board view, display options or help, aliased Backlog to `inbox` (two nav
227
+ // rows, one glyph) and Clients to `briefcase`. `sidebar` is the left-panel
228
+ // toggle a collapsible rail needs.
229
+ users: Users,
230
+ archive: Archive,
231
+ kanban: Kanban,
232
+ sliders: Sliders,
233
+ help: HelpCircle,
234
+ sidebar: SidebarLeft
217
235
  };
218
236
  var WEIGHTS = {
219
237
  regular: "Outline",