@adecore/ui 0.31.12 → 0.33.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 (163) hide show
  1. package/dist/AccentSwatches.js +290 -13
  2. package/dist/Banner.js +90 -9
  3. package/dist/Button.js +114 -22
  4. package/dist/ButtonGroup.js +62 -8
  5. package/dist/Checkbox.js +73 -4
  6. package/dist/ChoiceCards.js +205 -11
  7. package/dist/CloseButton.js +87 -7
  8. package/dist/ColorSwatch.js +132 -15
  9. package/dist/ColorWheelPicker.js +305 -71
  10. package/dist/ColumnResizeHandle.js +43 -8
  11. package/dist/DisabledReason.js +27 -8
  12. package/dist/DockShell.js +144 -37
  13. package/dist/EmptyState.js +95 -6
  14. package/dist/ErrorBoundary.js +254 -31
  15. package/dist/Field.js +349 -31
  16. package/dist/FileIcon.js +67 -6
  17. package/dist/Icon.js +38 -6
  18. package/dist/IconButton.js +176 -20
  19. package/dist/IconPicker.js +344 -73
  20. package/dist/Input.js +233 -14
  21. package/dist/Kbd.js +150 -10
  22. package/dist/LazyBoundary.js +14 -5
  23. package/dist/ListRow.js +75 -15
  24. package/dist/Meter.js +108 -5
  25. package/dist/MiddleTruncate.js +126 -45
  26. package/dist/PanelEmpty.js +64 -5
  27. package/dist/PanelHeader.js +95 -13
  28. package/dist/Pill.js +114 -19
  29. package/dist/ProjectSwitcher.js +225 -12
  30. package/dist/PromptDialog.js +352 -37
  31. package/dist/SectionLabel.js +62 -8
  32. package/dist/SegmentBar.js +197 -36
  33. package/dist/Segmented.js +130 -23
  34. package/dist/Select.js +310 -19
  35. package/dist/SelectSearch.js +344 -29
  36. package/dist/Separator.js +35 -4
  37. package/dist/ShortcutHints.js +146 -76
  38. package/dist/Skeleton.js +31 -4
  39. package/dist/Slider.js +172 -10
  40. package/dist/SlidingColumn.js +194 -34
  41. package/dist/Spinner.js +100 -3
  42. package/dist/Stepper.js +232 -11
  43. package/dist/Surface.js +62 -8
  44. package/dist/Switch.js +60 -6
  45. package/dist/TextMenu.js +212 -17
  46. package/dist/Tile.js +149 -5
  47. package/dist/Toasts.js +391 -33
  48. package/dist/Tooltip.js +153 -16
  49. package/dist/UIProvider.js +62 -15
  50. package/dist/Waveform.js +362 -93
  51. package/dist/Wipe.js +259 -34
  52. package/dist/ZoomControls.js +356 -14
  53. package/dist/class-name.js +1 -1
  54. package/dist/clipboard.js +15 -17
  55. package/dist/context-menu/index.parts.js +1 -1
  56. package/dist/dialog/index.parts.js +1 -1
  57. package/dist/dialog/parts.js +378 -29
  58. package/dist/dialog-layer.js +51 -18
  59. package/dist/error-boundary.js +19 -19
  60. package/dist/error-message.js +1 -1
  61. package/dist/field-context.js +7 -5
  62. package/dist/file-icon.js +23 -21
  63. package/dist/file-tree/helpers.js +133 -119
  64. package/dist/file-tree/index.parts.js +3 -3
  65. package/dist/file-tree/parts.js +418 -127
  66. package/dist/file-tree/style.js +1 -1
  67. package/dist/file-tree/use-file-tree-shift.js +43 -30
  68. package/dist/file-tree/use-file-tree.js +60 -18
  69. package/dist/file-tree/use-slots.js +220 -192
  70. package/dist/floating.js +2 -2
  71. package/dist/format/datetime.js +88 -38
  72. package/dist/format/duration.js +59 -53
  73. package/dist/format/index.js +1 -1
  74. package/dist/format/locale.js +76 -56
  75. package/dist/format/number.js +77 -61
  76. package/dist/format/regions.js +4 -2
  77. package/dist/format/time-zone.js +1 -1
  78. package/dist/icon-button-size.js +12 -2
  79. package/dist/icon-picker.js +70 -61
  80. package/dist/index.js +57 -57
  81. package/dist/key-value-list/index.parts.js +1 -1
  82. package/dist/key-value-list/parts.js +256 -22
  83. package/dist/lazy-landings.js +10 -10
  84. package/dist/lazy.js +84 -71
  85. package/dist/locales/en.js +80 -80
  86. package/dist/locales/nl.js +80 -80
  87. package/dist/locales.js +10 -7
  88. package/dist/menu/index.parts.js +1 -1
  89. package/dist/menu/parts.js +882 -44
  90. package/dist/merge-refs.js +8 -9
  91. package/dist/middle-truncate.js +24 -25
  92. package/dist/modality.js +27 -19
  93. package/dist/placement.js +11 -20
  94. package/dist/platform.js +6 -6
  95. package/dist/popover/index.parts.js +1 -1
  96. package/dist/popover/parts.js +173 -11
  97. package/dist/popup-layer.js +38 -17
  98. package/dist/prefetch.js +78 -79
  99. package/dist/preview-card/index.parts.js +1 -1
  100. package/dist/project-switcher-row.js +153 -12
  101. package/dist/select-row.js +69 -5
  102. package/dist/select-shared.js +6 -6
  103. package/dist/selection.js +16 -16
  104. package/dist/seti-icons.js +413 -413
  105. package/dist/settings/ConfirmDialog.js +55 -8
  106. package/dist/settings/DetailHeader.js +72 -4
  107. package/dist/settings/MasterDetail.js +119 -7
  108. package/dist/settings/SettingsDialog.js +820 -80
  109. package/dist/settings/SettingsRow.js +205 -18
  110. package/dist/settings/SettingsSection.js +96 -6
  111. package/dist/settings/index.js +7 -7
  112. package/dist/settings/target.js +7 -2
  113. package/dist/shortcut-hints.js +73 -55
  114. package/dist/shortcut.js +140 -104
  115. package/dist/step-places.js +1 -1
  116. package/dist/tabs/index.parts.js +1 -1
  117. package/dist/tabs/overflow.js +18 -18
  118. package/dist/tabs/parts.js +780 -166
  119. package/dist/testing/dedupe.js +82 -75
  120. package/dist/testing/fake-source.js +12 -12
  121. package/dist/testing/index.js +1 -1
  122. package/dist/toast-store.js +65 -46
  123. package/dist/tree/index.parts.js +1 -1
  124. package/dist/tree/parts.js +721 -94
  125. package/dist/tree/shift.js +28 -22
  126. package/dist/tree/style.js +2 -2
  127. package/dist/tree/use-tree-shift.js +178 -117
  128. package/dist/useAsyncAction.js +23 -19
  129. package/dist/useColumnResize.js +36 -34
  130. package/dist/useContentSize.js +62 -18
  131. package/dist/useMeasuredWidth.js +14 -3
  132. package/dist/useNow.js +73 -30
  133. package/dist/wipe-split.js +14 -14
  134. package/dist/workspace/DropPreview.js +60 -7
  135. package/dist/workspace/SplitView.js +1025 -441
  136. package/dist/workspace/TabStrip.js +810 -191
  137. package/dist/workspace/Workspace.js +276 -26
  138. package/dist/workspace/context.js +8 -3
  139. package/dist/workspace/geometry.js +173 -150
  140. package/dist/workspace/model.js +313 -250
  141. package/dist/workspace/preview.js +61 -61
  142. package/dist/zoom.js +2 -2
  143. package/package.json +1 -1
  144. package/src/ErrorBoundary.tsx +1 -1
  145. package/src/Field.tsx +4 -3
  146. package/src/IconPicker.tsx +3 -3
  147. package/src/LazyBoundary.tsx +2 -0
  148. package/src/MiddleTruncate.tsx +2 -2
  149. package/src/SegmentBar.tsx +2 -2
  150. package/src/Toasts.tsx +3 -1
  151. package/src/Tooltip.tsx +7 -10
  152. package/src/Waveform.tsx +3 -3
  153. package/src/file-tree/parts.tsx +6 -9
  154. package/src/file-tree/use-file-tree-shift.tsx +6 -9
  155. package/src/lazy.tsx +4 -0
  156. package/src/locales/en.ts +4 -4
  157. package/src/locales/nl.ts +5 -5
  158. package/src/settings/SettingsDialog.tsx +1 -1
  159. package/src/tree/parts.tsx +5 -8
  160. package/src/useContentSize.ts +3 -3
  161. package/src/workspace/SplitView.tsx +2 -2
  162. package/src/workspace/TabStrip.tsx +2 -3
  163. package/src/workspace/Workspace.tsx +2 -5
package/dist/Field.js CHANGED
@@ -1,50 +1,368 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useId, useMemo } from 'react';
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { useId } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { useRender } from '@base-ui/react/use-render';
5
5
  import { FieldContext } from './field-context.js';
6
- import { SectionLabel } from './SectionLabel.js';
6
+ import { SectionLabel } from "./SectionLabel.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
8
  const HINT = 'text-xs text-text-muted';
8
9
  const ERROR = 'text-xs text-status-error';
9
10
  // Beside the control the label reads at the size of what is typed, on the middle of the control's first line however tall it grows.
10
11
  const LABEL_BESIDE = 'flex h-8 items-center self-start text-sm text-text-muted';
11
- const isShown = (line) => line !== undefined && line !== null && line !== '';
12
+ const isShown = line => line !== undefined && line !== null && line !== '';
12
13
  /* The line under a field that says what goes in it. */
13
- export function FieldHint({ render, className, ref, ...props }) {
14
- return useRender({
15
- render,
16
- ref,
17
- defaultTagName: 'p',
18
- props: { ...props, className: clsx('mt-1', HINT, className) }
19
- });
14
+ export function FieldHint(t0) {
15
+ const $ = _c(14);
16
+ let className;
17
+ let props;
18
+ let ref;
19
+ let render;
20
+ if ($[0] !== t0) {
21
+ ({
22
+ render,
23
+ className,
24
+ ref,
25
+ ...props
26
+ } = t0);
27
+ $[0] = t0;
28
+ $[1] = className;
29
+ $[2] = props;
30
+ $[3] = ref;
31
+ $[4] = render;
32
+ } else {
33
+ className = $[1];
34
+ props = $[2];
35
+ ref = $[3];
36
+ render = $[4];
37
+ }
38
+ let t1;
39
+ if ($[5] !== className) {
40
+ t1 = clsx("mt-1", HINT, className);
41
+ $[5] = className;
42
+ $[6] = t1;
43
+ } else {
44
+ t1 = $[6];
45
+ }
46
+ let t2;
47
+ if ($[7] !== props || $[8] !== t1) {
48
+ t2 = {
49
+ ...props,
50
+ className: t1
51
+ };
52
+ $[7] = props;
53
+ $[8] = t1;
54
+ $[9] = t2;
55
+ } else {
56
+ t2 = $[9];
57
+ }
58
+ let t3;
59
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
60
+ t3 = {
61
+ render,
62
+ ref,
63
+ defaultTagName: "p",
64
+ props: t2
65
+ };
66
+ $[10] = ref;
67
+ $[11] = render;
68
+ $[12] = t2;
69
+ $[13] = t3;
70
+ } else {
71
+ t3 = $[13];
72
+ }
73
+ return useRender(t3);
20
74
  }
21
75
  /* What went wrong in a dialog or a form. An alert, so a screen reader hears it arrive. */
22
- export function FormError({ render, className, ref, ...props }) {
23
- return useRender({
24
- render,
25
- ref,
26
- defaultTagName: 'p',
27
- props: { role: 'alert', ...props, className: clsx(ERROR, className) }
28
- });
76
+ export function FormError(t0) {
77
+ const $ = _c(14);
78
+ let className;
79
+ let props;
80
+ let ref;
81
+ let render;
82
+ if ($[0] !== t0) {
83
+ ({
84
+ render,
85
+ className,
86
+ ref,
87
+ ...props
88
+ } = t0);
89
+ $[0] = t0;
90
+ $[1] = className;
91
+ $[2] = props;
92
+ $[3] = ref;
93
+ $[4] = render;
94
+ } else {
95
+ className = $[1];
96
+ props = $[2];
97
+ ref = $[3];
98
+ render = $[4];
99
+ }
100
+ let t1;
101
+ if ($[5] !== className) {
102
+ t1 = clsx(ERROR, className);
103
+ $[5] = className;
104
+ $[6] = t1;
105
+ } else {
106
+ t1 = $[6];
107
+ }
108
+ let t2;
109
+ if ($[7] !== props || $[8] !== t1) {
110
+ t2 = {
111
+ role: "alert",
112
+ ...props,
113
+ className: t1
114
+ };
115
+ $[7] = props;
116
+ $[8] = t1;
117
+ $[9] = t2;
118
+ } else {
119
+ t2 = $[9];
120
+ }
121
+ let t3;
122
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
123
+ t3 = {
124
+ render,
125
+ ref,
126
+ defaultTagName: "p",
127
+ props: t2
128
+ };
129
+ $[10] = ref;
130
+ $[11] = render;
131
+ $[12] = t2;
132
+ $[13] = t3;
133
+ } else {
134
+ t3 = $[13];
135
+ }
136
+ return useRender(t3);
29
137
  }
30
138
  /* A group's label names it through `aria-labelledby`; a control's points at the control. */
31
- function FieldLabel({ id, group, horizontal, children }) {
32
- if (horizontal) {
33
- return group ? (_jsx("span", { id: `${id}-label`, className: LABEL_BESIDE, children: children })) : (_jsx("label", { htmlFor: `${id}-control`, className: LABEL_BESIDE, children: children }));
139
+ function FieldLabel(t0) {
140
+ const $ = _c(8);
141
+ const {
142
+ id,
143
+ group,
144
+ horizontal,
145
+ children
146
+ } = t0;
147
+ if (horizontal) {
148
+ let t1;
149
+ if ($[0] !== children || $[1] !== group || $[2] !== id) {
150
+ t1 = group ? /*#__PURE__*/_jsx("span", {
151
+ id: `${id}-label`,
152
+ className: LABEL_BESIDE,
153
+ children: children
154
+ }) : /*#__PURE__*/_jsx("label", {
155
+ htmlFor: `${id}-control`,
156
+ className: LABEL_BESIDE,
157
+ children: children
158
+ });
159
+ $[0] = children;
160
+ $[1] = group;
161
+ $[2] = id;
162
+ $[3] = t1;
163
+ } else {
164
+ t1 = $[3];
34
165
  }
35
- return group ? (_jsx(SectionLabel, { id: `${id}-label`, children: children })) : (_jsx(SectionLabel, { render: _jsx("label", { htmlFor: `${id}-control` }), children: children }));
166
+ return t1;
167
+ }
168
+ let t1;
169
+ if ($[4] !== children || $[5] !== group || $[6] !== id) {
170
+ t1 = group ? /*#__PURE__*/_jsx(SectionLabel, {
171
+ id: `${id}-label`,
172
+ children: children
173
+ }) : /*#__PURE__*/_jsx(SectionLabel, {
174
+ render: /*#__PURE__*/_jsx("label", {
175
+ htmlFor: `${id}-control`
176
+ }),
177
+ children: children
178
+ });
179
+ $[4] = children;
180
+ $[5] = group;
181
+ $[6] = id;
182
+ $[7] = t1;
183
+ } else {
184
+ t1 = $[7];
185
+ }
186
+ return t1;
36
187
  }
37
188
  /*
38
189
  * A labelled control, or a labelled group, with an optional hint and error under it, stacked 6px apart.
39
190
  * Beside each other the label column is 112px, so the controls of every field in a form line up.
40
191
  */
41
- export function Field({ label, hint, error, group = false, orientation = 'vertical', className, ref, children }) {
42
- const horizontal = orientation === 'horizontal';
43
- const id = useId();
44
- const hasLabel = label !== undefined;
45
- const hasHint = isShown(hint);
46
- const hasError = isShown(error);
47
- const describedBy = [hasHint ? `${id}-hint` : null, hasError ? `${id}-error` : null].filter((part) => part !== null).join(' ') || undefined;
48
- const control = useMemo(() => (group ? null : { id: `${id}-control`, describedBy, invalid: hasError }), [group, id, describedBy, hasError]);
49
- return (_jsxs("div", { ref: ref, role: group ? 'group' : undefined, "aria-labelledby": group && hasLabel ? `${id}-label` : undefined, "aria-describedby": group ? describedBy : undefined, className: clsx(horizontal ? 'grid grid-cols-[112px_minmax(0,1fr)] gap-x-3 gap-y-1.5' : 'flex flex-col gap-1.5', className), children: [hasLabel && (_jsx(FieldLabel, { id: id, group: group, horizontal: horizontal, children: label })), _jsx(FieldContext, { value: control, children: horizontal ? _jsx("div", { className: "col-start-2 min-w-0", children: children }) : children }), hasHint && (_jsx("p", { id: `${id}-hint`, className: clsx(HINT, horizontal && 'col-start-2'), children: hint })), hasError && (_jsx("p", { id: `${id}-error`, role: "alert", className: clsx(ERROR, 'break-words', horizontal && 'col-start-2'), children: error }))] }));
192
+ export function Field(t0) {
193
+ const $ = _c(47);
194
+ const {
195
+ label,
196
+ hint,
197
+ error,
198
+ group: t1,
199
+ orientation: t2,
200
+ className,
201
+ ref,
202
+ children
203
+ } = t0;
204
+ const group = t1 === undefined ? false : t1;
205
+ const orientation = t2 === undefined ? "vertical" : t2;
206
+ const horizontal = orientation === "horizontal";
207
+ const id = useId();
208
+ const hasLabel = label !== undefined;
209
+ let t3;
210
+ if ($[0] !== hint) {
211
+ t3 = isShown(hint);
212
+ $[0] = hint;
213
+ $[1] = t3;
214
+ } else {
215
+ t3 = $[1];
216
+ }
217
+ const hasHint = t3;
218
+ let t4;
219
+ if ($[2] !== error) {
220
+ t4 = isShown(error);
221
+ $[2] = error;
222
+ $[3] = t4;
223
+ } else {
224
+ t4 = $[3];
225
+ }
226
+ const hasError = t4;
227
+ const t5 = hasHint ? `${id}-hint` : null;
228
+ const t6 = hasError ? `${id}-error` : null;
229
+ let t7;
230
+ if ($[4] !== t5 || $[5] !== t6) {
231
+ t7 = [t5, t6].filter(_temp);
232
+ $[4] = t5;
233
+ $[5] = t6;
234
+ $[6] = t7;
235
+ } else {
236
+ t7 = $[6];
237
+ }
238
+ const lines = t7;
239
+ const describedBy = lines.length > 0 ? lines.join(" ") : undefined;
240
+ let t8;
241
+ if ($[7] !== describedBy || $[8] !== group || $[9] !== hasError || $[10] !== id) {
242
+ t8 = group ? null : {
243
+ id: `${id}-control`,
244
+ describedBy,
245
+ invalid: hasError
246
+ };
247
+ $[7] = describedBy;
248
+ $[8] = group;
249
+ $[9] = hasError;
250
+ $[10] = id;
251
+ $[11] = t8;
252
+ } else {
253
+ t8 = $[11];
254
+ }
255
+ const control = t8;
256
+ const t9 = group ? "group" : undefined;
257
+ const t10 = group && hasLabel ? `${id}-label` : undefined;
258
+ const t11 = group ? describedBy : undefined;
259
+ const t12 = horizontal ? "grid grid-cols-[112px_minmax(0,1fr)] gap-x-3 gap-y-1.5" : "flex flex-col gap-1.5";
260
+ let t13;
261
+ if ($[12] !== className || $[13] !== t12) {
262
+ t13 = clsx(t12, className);
263
+ $[12] = className;
264
+ $[13] = t12;
265
+ $[14] = t13;
266
+ } else {
267
+ t13 = $[14];
268
+ }
269
+ let t14;
270
+ if ($[15] !== group || $[16] !== hasLabel || $[17] !== horizontal || $[18] !== id || $[19] !== label) {
271
+ t14 = hasLabel && /*#__PURE__*/_jsx(FieldLabel, {
272
+ id: id,
273
+ group: group,
274
+ horizontal: horizontal,
275
+ children: label
276
+ });
277
+ $[15] = group;
278
+ $[16] = hasLabel;
279
+ $[17] = horizontal;
280
+ $[18] = id;
281
+ $[19] = label;
282
+ $[20] = t14;
283
+ } else {
284
+ t14 = $[20];
285
+ }
286
+ let t15;
287
+ if ($[21] !== children || $[22] !== horizontal) {
288
+ t15 = horizontal ? /*#__PURE__*/_jsx("div", {
289
+ className: "col-start-2 min-w-0",
290
+ children: children
291
+ }) : children;
292
+ $[21] = children;
293
+ $[22] = horizontal;
294
+ $[23] = t15;
295
+ } else {
296
+ t15 = $[23];
297
+ }
298
+ let t16;
299
+ if ($[24] !== control || $[25] !== t15) {
300
+ t16 = /*#__PURE__*/_jsx(FieldContext, {
301
+ value: control,
302
+ children: t15
303
+ });
304
+ $[24] = control;
305
+ $[25] = t15;
306
+ $[26] = t16;
307
+ } else {
308
+ t16 = $[26];
309
+ }
310
+ let t17;
311
+ if ($[27] !== hasHint || $[28] !== hint || $[29] !== horizontal || $[30] !== id) {
312
+ t17 = hasHint && /*#__PURE__*/_jsx("p", {
313
+ id: `${id}-hint`,
314
+ className: clsx(HINT, horizontal && "col-start-2"),
315
+ children: hint
316
+ });
317
+ $[27] = hasHint;
318
+ $[28] = hint;
319
+ $[29] = horizontal;
320
+ $[30] = id;
321
+ $[31] = t17;
322
+ } else {
323
+ t17 = $[31];
324
+ }
325
+ let t18;
326
+ if ($[32] !== error || $[33] !== hasError || $[34] !== horizontal || $[35] !== id) {
327
+ t18 = hasError && /*#__PURE__*/_jsx("p", {
328
+ id: `${id}-error`,
329
+ role: "alert",
330
+ className: clsx(ERROR, "break-words", horizontal && "col-start-2"),
331
+ children: error
332
+ });
333
+ $[32] = error;
334
+ $[33] = hasError;
335
+ $[34] = horizontal;
336
+ $[35] = id;
337
+ $[36] = t18;
338
+ } else {
339
+ t18 = $[36];
340
+ }
341
+ let t19;
342
+ if ($[37] !== ref || $[38] !== t10 || $[39] !== t11 || $[40] !== t13 || $[41] !== t14 || $[42] !== t16 || $[43] !== t17 || $[44] !== t18 || $[45] !== t9) {
343
+ t19 = /*#__PURE__*/_jsxs("div", {
344
+ ref: ref,
345
+ role: t9,
346
+ "aria-labelledby": t10,
347
+ "aria-describedby": t11,
348
+ className: t13,
349
+ children: [t14, t16, t17, t18]
350
+ });
351
+ $[37] = ref;
352
+ $[38] = t10;
353
+ $[39] = t11;
354
+ $[40] = t13;
355
+ $[41] = t14;
356
+ $[42] = t16;
357
+ $[43] = t17;
358
+ $[44] = t18;
359
+ $[45] = t9;
360
+ $[46] = t19;
361
+ } else {
362
+ t19 = $[46];
363
+ }
364
+ return t19;
50
365
  }
366
+ function _temp(part) {
367
+ return part !== null;
368
+ }
package/dist/FileIcon.js CHANGED
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import { useInsertionEffect } from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { fileIconFor, mountFileIconSprite } from './file-icon.js';
@@ -8,8 +8,69 @@ import { fileIconFor, mountFileIconSprite } from './file-icon.js';
8
8
  * a TypeScript blue or a Vue green is the mark of the file type, not a theme choice. Decorative like
9
9
  * every other icon here, so the name beside it does the reading.
10
10
  */
11
- export function FileIcon({ path, size = 16, className, ref }) {
12
- // Before the browser paints, so a `<use>` never points at a symbol that is not in the document yet.
13
- useInsertionEffect(mountFileIconSprite, []);
14
- return (_jsx("svg", { ref: ref, className: clsx('file-icon', className), width: size, height: size, viewBox: "0 0 16 16", "aria-hidden": true, children: _jsx("use", { href: `#${fileIconFor(path)}` }) }));
15
- }
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export function FileIcon(t0) {
13
+ const $ = _c(12);
14
+ const {
15
+ path,
16
+ size: t1,
17
+ className,
18
+ ref
19
+ } = t0;
20
+ const size = t1 === undefined ? 16 : t1;
21
+ let t2;
22
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
23
+ t2 = [];
24
+ $[0] = t2;
25
+ } else {
26
+ t2 = $[0];
27
+ }
28
+ useInsertionEffect(mountFileIconSprite, t2);
29
+ let t3;
30
+ if ($[1] !== className) {
31
+ t3 = clsx("file-icon", className);
32
+ $[1] = className;
33
+ $[2] = t3;
34
+ } else {
35
+ t3 = $[2];
36
+ }
37
+ let t4;
38
+ if ($[3] !== path) {
39
+ t4 = fileIconFor(path);
40
+ $[3] = path;
41
+ $[4] = t4;
42
+ } else {
43
+ t4 = $[4];
44
+ }
45
+ const t5 = `#${t4}`;
46
+ let t6;
47
+ if ($[5] !== t5) {
48
+ t6 = /*#__PURE__*/_jsx("use", {
49
+ href: t5
50
+ });
51
+ $[5] = t5;
52
+ $[6] = t6;
53
+ } else {
54
+ t6 = $[6];
55
+ }
56
+ let t7;
57
+ if ($[7] !== ref || $[8] !== size || $[9] !== t3 || $[10] !== t6) {
58
+ t7 = /*#__PURE__*/_jsx("svg", {
59
+ ref: ref,
60
+ className: t3,
61
+ width: size,
62
+ height: size,
63
+ viewBox: "0 0 16 16",
64
+ "aria-hidden": true,
65
+ children: t6
66
+ });
67
+ $[7] = ref;
68
+ $[8] = size;
69
+ $[9] = t3;
70
+ $[10] = t6;
71
+ $[11] = t7;
72
+ } else {
73
+ t7 = $[11];
74
+ }
75
+ return t7;
76
+ }
package/dist/Icon.js CHANGED
@@ -1,12 +1,44 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import clsx from 'clsx';
3
3
  // The whole client draws at this weight. 2 is Lucide's default, but at 12 and 14 pixels next to
4
4
  // text of the same size a hair thinner keeps the glyph from outweighing the words beside it.
5
+ import { jsx as _jsx } from "react/jsx-runtime";
5
6
  const STROKE_WIDTH = 1.75;
6
7
  /* One Lucide icon, sized in pixels. Icons here are decorative. The name a screen reader reads
7
8
  sits on the button or the label next to it, so the glyph stays hidden. */
8
- export function Icon({ icon: Glyph, size = 16, className, ref }) {
9
- // An inline svg sits on the text baseline, which drops a square glyph below the words next to
10
- // it; the middle of the box against the middle of the text is what reads as aligned.
11
- return _jsx(Glyph, { ref: ref, size: size, strokeWidth: STROKE_WIDTH, className: clsx('align-middle', className), "aria-hidden": true });
12
- }
9
+ export function Icon(t0) {
10
+ const $ = _c(7);
11
+ const {
12
+ icon: Glyph,
13
+ size: t1,
14
+ className,
15
+ ref
16
+ } = t0;
17
+ const size = t1 === undefined ? 16 : t1;
18
+ let t2;
19
+ if ($[0] !== className) {
20
+ t2 = clsx("align-middle", className);
21
+ $[0] = className;
22
+ $[1] = t2;
23
+ } else {
24
+ t2 = $[1];
25
+ }
26
+ let t3;
27
+ if ($[2] !== Glyph || $[3] !== ref || $[4] !== size || $[5] !== t2) {
28
+ t3 = /*#__PURE__*/_jsx(Glyph, {
29
+ ref: ref,
30
+ size: size,
31
+ strokeWidth: STROKE_WIDTH,
32
+ className: t2,
33
+ "aria-hidden": true
34
+ });
35
+ $[2] = Glyph;
36
+ $[3] = ref;
37
+ $[4] = size;
38
+ $[5] = t2;
39
+ $[6] = t3;
40
+ } else {
41
+ t3 = $[6];
42
+ }
43
+ return t3;
44
+ }