@mlola-ui/registry 1.0.4 → 1.0.5

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 (79) hide show
  1. package/components/accordion.json +2 -2
  2. package/components/alert.json +1 -1
  3. package/components/app-shell.json +1 -1
  4. package/components/badge.json +1 -1
  5. package/components/breadcrumb.json +1 -1
  6. package/components/button.json +1 -1
  7. package/components/calendar.json +2 -2
  8. package/components/carousel.json +2 -2
  9. package/components/checkbox.json +1 -1
  10. package/components/color-picker.json +1 -1
  11. package/components/combobox.json +1 -1
  12. package/components/command-menu.json +1 -1
  13. package/components/context-menu.json +3 -2
  14. package/components/date-picker.json +1 -1
  15. package/components/dropdown-menu.json +2 -2
  16. package/components/dropzone.json +1 -1
  17. package/components/hover-card.json +4 -2
  18. package/components/kbd.json +1 -1
  19. package/components/modal.json +3 -3
  20. package/components/number-input.json +1 -1
  21. package/components/pagination.json +1 -1
  22. package/components/popover.json +4 -2
  23. package/components/resizable.json +1 -1
  24. package/components/segmented-control.json +1 -1
  25. package/components/select.json +3 -3
  26. package/components/sheet.json +3 -3
  27. package/components/slider.json +1 -1
  28. package/components/stepper.json +1 -1
  29. package/components/tabs.json +1 -1
  30. package/components/tag-input.json +2 -2
  31. package/components/time-picker.json +1 -1
  32. package/components/timeline.json +1 -1
  33. package/components/toast.json +1 -1
  34. package/components/tour.json +3 -2
  35. package/generated/catalog.ts +44 -38
  36. package/index.json +1 -1
  37. package/package.json +1 -1
  38. package/snapshot/index.json +56 -50
  39. package/snapshot/items/components/accordion.json +2 -2
  40. package/snapshot/items/components/alert.json +1 -1
  41. package/snapshot/items/components/app-shell.json +1 -1
  42. package/snapshot/items/components/badge.json +1 -1
  43. package/snapshot/items/components/breadcrumb.json +1 -1
  44. package/snapshot/items/components/button.json +1 -1
  45. package/snapshot/items/components/calendar.json +2 -2
  46. package/snapshot/items/components/carousel.json +2 -2
  47. package/snapshot/items/components/checkbox.json +1 -1
  48. package/snapshot/items/components/color-picker.json +1 -1
  49. package/snapshot/items/components/combobox.json +1 -1
  50. package/snapshot/items/components/command-menu.json +1 -1
  51. package/snapshot/items/components/context-menu.json +3 -2
  52. package/snapshot/items/components/date-picker.json +1 -1
  53. package/snapshot/items/components/dropdown-menu.json +2 -2
  54. package/snapshot/items/components/dropzone.json +1 -1
  55. package/snapshot/items/components/hover-card.json +4 -2
  56. package/snapshot/items/components/kbd.json +1 -1
  57. package/snapshot/items/components/modal.json +3 -3
  58. package/snapshot/items/components/number-input.json +1 -1
  59. package/snapshot/items/components/pagination.json +1 -1
  60. package/snapshot/items/components/popover.json +4 -2
  61. package/snapshot/items/components/resizable.json +1 -1
  62. package/snapshot/items/components/segmented-control.json +1 -1
  63. package/snapshot/items/components/select.json +3 -3
  64. package/snapshot/items/components/sheet.json +3 -3
  65. package/snapshot/items/components/slider.json +1 -1
  66. package/snapshot/items/components/stepper.json +1 -1
  67. package/snapshot/items/components/tabs.json +1 -1
  68. package/snapshot/items/components/tag-input.json +2 -2
  69. package/snapshot/items/components/time-picker.json +1 -1
  70. package/snapshot/items/components/timeline.json +1 -1
  71. package/snapshot/items/components/toast.json +1 -1
  72. package/snapshot/items/components/tour.json +3 -2
  73. package/snapshot/source/packages/components/_internal/anchor.ts +3 -52
  74. package/snapshot/source/packages/components/_internal/dialog.ts +25 -1
  75. package/snapshot/source/packages/components/calendar/calendar.tsx +2 -1
  76. package/snapshot/source/packages/components/kbd/kbd.tsx +3 -1
  77. package/snapshot/source/packages/components/resizable/resizable.tsx +2 -1
  78. package/snapshot/source/packages/components/tag-input/tag-input.tsx +1 -0
  79. package/snapshot/source-manifest.json +6 -6
@@ -29,7 +29,7 @@
29
29
  "path": "packages/components/resizable/resizable.tsx",
30
30
  "target": "{{aliases.components}}/resizable.tsx",
31
31
  "type": "registry:ui",
32
- "integrity": "sha256-40sK2UyIR9Ek72KAu5nvbr44tKEY6JhC5Ftb++Wf6cI="
32
+ "integrity": "sha256-Yxlq88qElhv2Q5DooPdriZkawRS0QWx08nd6ybz5oeY="
33
33
  }
34
34
  ],
35
35
  "themeContract": {
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "registryDependencies": [],
23
23
  "engineDependencies": {
24
- "@mlola-ui/behavior": "^1.0.4"
24
+ "@mlola-ui/behavior": "^1.0.5"
25
25
  },
26
26
  "files": [
27
27
  {
@@ -24,15 +24,15 @@
24
24
  },
25
25
  "registryDependencies": [],
26
26
  "engineDependencies": {
27
- "@mlola-ui/behavior": "^1.0.4",
28
- "@mlola-ui/icons": "^1.0.4"
27
+ "@mlola-ui/behavior": "^1.0.5",
28
+ "@mlola-ui/icons": "^1.0.5"
29
29
  },
30
30
  "files": [
31
31
  {
32
32
  "path": "packages/components/_internal/anchor.ts",
33
33
  "target": "{{aliases.components}}/_internal/anchor.ts",
34
34
  "type": "registry:ui",
35
- "integrity": "sha256-Jo9N3iIaWnS1CJzYhgTv7vnW+8MLyzL8X4GRNjeEp+g="
35
+ "integrity": "sha256-OPm/4Jf4UUo8IG+/4TAKpGDHtYpvxvGwyq3/RSZQIGc="
36
36
  },
37
37
  {
38
38
  "path": "packages/components/_internal/floating.ts",
@@ -29,15 +29,15 @@
29
29
  },
30
30
  "registryDependencies": [],
31
31
  "engineDependencies": {
32
- "@mlola-ui/behavior": "^1.0.4",
33
- "@mlola-ui/icons": "^1.0.4"
32
+ "@mlola-ui/behavior": "^1.0.5",
33
+ "@mlola-ui/icons": "^1.0.5"
34
34
  },
35
35
  "files": [
36
36
  {
37
37
  "path": "packages/components/_internal/dialog.ts",
38
38
  "target": "{{aliases.components}}/_internal/dialog.ts",
39
39
  "type": "registry:ui",
40
- "integrity": "sha256-Q7DPI2BipgFjPd3T8g2GGicrVal0cp0eMKXWFqcj64k="
40
+ "integrity": "sha256-796y3oNOVWarLvICTdi+d0/2axqSrzLVJiyBeh9X7bU="
41
41
  },
42
42
  {
43
43
  "path": "packages/components/_internal/react.ts",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "registryDependencies": [],
25
25
  "engineDependencies": {
26
- "@mlola-ui/behavior": "^1.0.4"
26
+ "@mlola-ui/behavior": "^1.0.5"
27
27
  },
28
28
  "files": [
29
29
  {
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "registryDependencies": [],
22
22
  "engineDependencies": {
23
- "@mlola-ui/icons": "^1.0.4"
23
+ "@mlola-ui/icons": "^1.0.5"
24
24
  },
25
25
  "files": [
26
26
  {
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "registryDependencies": [],
26
26
  "engineDependencies": {
27
- "@mlola-ui/behavior": "^1.0.4"
27
+ "@mlola-ui/behavior": "^1.0.5"
28
28
  },
29
29
  "files": [
30
30
  {
@@ -23,7 +23,7 @@
23
23
  "input"
24
24
  ],
25
25
  "engineDependencies": {
26
- "@mlola-ui/icons": "^1.0.4"
26
+ "@mlola-ui/icons": "^1.0.5"
27
27
  },
28
28
  "files": [
29
29
  {
@@ -36,7 +36,7 @@
36
36
  "path": "packages/components/tag-input/tag-input.tsx",
37
37
  "target": "{{aliases.components}}/tag-input.tsx",
38
38
  "type": "registry:ui",
39
- "integrity": "sha256-EK7xJTe3Y/S5Kn3vS0zBQg9lC+RVoGvky6HOAt+DnAw="
39
+ "integrity": "sha256-lc4ofz1/lUnb7B/GlFElVKXLbPwtJFAjE5vWwAY99fA="
40
40
  }
41
41
  ],
42
42
  "themeContract": {
@@ -22,7 +22,7 @@
22
22
  "popover"
23
23
  ],
24
24
  "engineDependencies": {
25
- "@mlola-ui/icons": "^1.0.4"
25
+ "@mlola-ui/icons": "^1.0.5"
26
26
  },
27
27
  "files": [
28
28
  {
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "registryDependencies": [],
26
26
  "engineDependencies": {
27
- "@mlola-ui/icons": "^1.0.4"
27
+ "@mlola-ui/icons": "^1.0.5"
28
28
  },
29
29
  "files": [
30
30
  {
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "registryDependencies": [],
28
28
  "engineDependencies": {
29
- "@mlola-ui/icons": "^1.0.4"
29
+ "@mlola-ui/icons": "^1.0.5"
30
30
  },
31
31
  "files": [
32
32
  {
@@ -20,14 +20,15 @@
20
20
  },
21
21
  "registryDependencies": [],
22
22
  "engineDependencies": {
23
- "@mlola-ui/icons": "^1.0.4"
23
+ "@mlola-ui/behavior": "^1.0.5",
24
+ "@mlola-ui/icons": "^1.0.5"
24
25
  },
25
26
  "files": [
26
27
  {
27
28
  "path": "packages/components/_internal/anchor.ts",
28
29
  "target": "{{aliases.components}}/_internal/anchor.ts",
29
30
  "type": "registry:ui",
30
- "integrity": "sha256-Jo9N3iIaWnS1CJzYhgTv7vnW+8MLyzL8X4GRNjeEp+g="
31
+ "integrity": "sha256-OPm/4Jf4UUo8IG+/4TAKpGDHtYpvxvGwyq3/RSZQIGc="
31
32
  },
32
33
  {
33
34
  "path": "packages/components/_internal/floating.ts",
@@ -1,54 +1,5 @@
1
1
  /**
2
- * Where a floating layer goes next to its anchor, as a pure function of
3
- * rectangles: prefer the requested side, flip when it does not fit, and shift
4
- * along the edge to stay inside the viewport. No DOM, so it is testable.
2
+ * Where a floating layer goes next to its anchor. The math is shared with the
3
+ * framework-free runtime, so it lives in @mlola-ui/behavior/logic.
5
4
  */
6
- export type Side = "top" | "bottom" | "left" | "right";
7
- export type Align = "start" | "center" | "end";
8
-
9
- export interface Rect {
10
- x: number;
11
- y: number;
12
- width: number;
13
- height: number;
14
- }
15
-
16
- export interface Placement {
17
- x: number;
18
- y: number;
19
- side: Side;
20
- }
21
-
22
- const OPPOSITE: Record<Side, Side> = { top: "bottom", bottom: "top", left: "right", right: "left" };
23
-
24
- export function placeFloating(
25
- anchor: Rect,
26
- floating: { width: number; height: number },
27
- viewport: { width: number; height: number },
28
- { side = "bottom", align = "center", offset = 8, padding = 8 }: { side?: Side; align?: Align; offset?: number; padding?: number } = {},
29
- ): Placement {
30
- const room: Record<Side, number> = {
31
- top: anchor.y - padding,
32
- bottom: viewport.height - (anchor.y + anchor.height) - padding,
33
- left: anchor.x - padding,
34
- right: viewport.width - (anchor.x + anchor.width) - padding,
35
- };
36
- const needs = (candidate: Side) => (candidate === "top" || candidate === "bottom" ? floating.height : floating.width) + offset;
37
- let chosen = side;
38
- if (room[side] < needs(side) && room[OPPOSITE[side]] > room[side]) chosen = OPPOSITE[side];
39
-
40
- const vertical = chosen === "top" || chosen === "bottom";
41
- let x: number;
42
- let y: number;
43
- if (vertical) {
44
- y = chosen === "bottom" ? anchor.y + anchor.height + offset : anchor.y - floating.height - offset;
45
- x = align === "start" ? anchor.x : align === "end" ? anchor.x + anchor.width - floating.width : anchor.x + anchor.width / 2 - floating.width / 2;
46
- } else {
47
- x = chosen === "right" ? anchor.x + anchor.width + offset : anchor.x - floating.width - offset;
48
- y = align === "start" ? anchor.y : align === "end" ? anchor.y + anchor.height - floating.height : anchor.y + anchor.height / 2 - floating.height / 2;
49
- }
50
- // Shift along the edge to stay on screen.
51
- x = Math.min(Math.max(x, padding), Math.max(padding, viewport.width - floating.width - padding));
52
- y = Math.min(Math.max(y, padding), Math.max(padding, viewport.height - floating.height - padding));
53
- return { x: Math.round(x), y: Math.round(y), side: chosen };
54
- }
5
+ export { placeFloating, type Align, type Placement, type Rect, type Side } from "@mlola-ui/behavior/logic";
@@ -44,6 +44,24 @@ function hideBackground(portal: HTMLElement) {
44
44
  };
45
45
  }
46
46
 
47
+ // Safari does not focus a button it clicks, so when a dialog opens with
48
+ // nothing focused, focus returns on close to the control just pressed.
49
+ let lastPressed: HTMLElement | null = null;
50
+ let pressedAt = 0;
51
+ let tracking = false;
52
+ function trackPresses() {
53
+ if (tracking) return;
54
+ tracking = true;
55
+ document.addEventListener(
56
+ "pointerdown",
57
+ (event) => {
58
+ lastPressed = event.target instanceof Element ? event.target.closest<HTMLElement>(FOCUSABLE) : null;
59
+ pressedAt = performance.now();
60
+ },
61
+ true,
62
+ );
63
+ }
64
+
47
65
  export function useDialogLayer({
48
66
  open,
49
67
  onClose,
@@ -61,6 +79,7 @@ export function useDialogLayer({
61
79
  closeRef.current = onClose;
62
80
 
63
81
  React.useEffect(() => {
82
+ trackPresses();
64
83
  const node = document.createElement("div");
65
84
  node.setAttribute("data-ml-portal", "");
66
85
  document.body.appendChild(node);
@@ -73,8 +92,13 @@ export function useDialogLayer({
73
92
 
74
93
  React.useEffect(() => {
75
94
  if (!open || !portal) return;
95
+ const active = document.activeElement;
76
96
  restoreFocusRef.current =
77
- document.activeElement instanceof HTMLElement ? document.activeElement : null;
97
+ active instanceof HTMLElement && active !== document.body
98
+ ? active
99
+ : lastPressed?.isConnected && performance.now() - pressedAt < 2000
100
+ ? lastPressed
101
+ : null;
78
102
  const releaseScroll = lockScroll();
79
103
  const restoreBackground = hideBackground(portal);
80
104
  const focusPanel = () => {
@@ -257,7 +257,8 @@ export function Calendar(props: CalendarProps) {
257
257
  ))}
258
258
  </div>
259
259
  {monthGrid(first, weekStart).map((week) => (
260
- <div key={week[0].date} role="row" className="ml-calendar-row">
260
+ // A week drawn only to keep months aligned has no day to read, so it is hidden whole.
261
+ <div key={week[0].date} role="row" className="ml-calendar-row" aria-hidden={(week.every(({ inMonth }) => !inMonth) && (!showOutsideDays || months > 1)) || undefined}>
261
262
  {week.map(({ date, inMonth }) => {
262
263
  if (!inMonth && (!showOutsideDays || months > 1)) return <span key={date} role="gridcell" className="ml-calendar-cell" aria-hidden="true" />;
263
264
  const selected = isSelected(date);
@@ -43,12 +43,14 @@ export function Shortcut({ keys, className, ...props }: ShortcutProps) {
43
43
  const shown = parts.map((key) => SYMBOLS[key]?.[apple ? "apple" : "other"] ?? key.toUpperCase());
44
44
  const spoken = parts.map((key) => (apple ? SYMBOLS[key]?.spoken : SYMBOLS[key]?.spokenOther ?? SYMBOLS[key]?.spoken) ?? key.toUpperCase()).join(" ");
45
45
  return (
46
- <kbd className={cx("ml-shortcut", className)} aria-label={spoken} {...props}>
46
+ <kbd className={cx("ml-shortcut", className)} {...props}>
47
47
  {shown.map((key, index) => (
48
48
  <kbd key={index} className="ml-kbd" aria-hidden="true">
49
49
  {key}
50
50
  </kbd>
51
51
  ))}
52
+ {/* A kbd cannot carry a label, so the words are text a screen reader reads. */}
53
+ <span className="ml-visually-hidden">{spoken}</span>
52
54
  </kbd>
53
55
  );
54
56
  }
@@ -134,7 +134,8 @@ export function Resizable({
134
134
  aria-valuemin={collapsible ? 0 : min}
135
135
  aria-valuemax={max}
136
136
  aria-valuenow={Math.round(shown)}
137
- aria-expanded={collapsible ? !isFolded : undefined}
137
+ // A separator has no expanded state: folded is its value at 0.
138
+ aria-valuetext={isFolded ? "Collapsed" : undefined}
138
139
  className="ml-resizable-handle"
139
140
  onPointerDown={(event) => {
140
141
  dragging.current = true;
@@ -181,6 +181,7 @@ export const TagInput = React.forwardRef<HTMLInputElement, TagInputProps>(functi
181
181
  ref={control}
182
182
  className="ml-tag-input-control"
183
183
  data-disabled={disabled || undefined}
184
+ aria-disabled={disabled || undefined}
184
185
  data-invalid={message ? "" : undefined}
185
186
  onMouseDown={(event) => {
186
187
  // Clicking the field's empty space puts the caret in the input.
@@ -1,6 +1,6 @@
1
1
  {
2
- "packages/components/_internal/anchor.ts": "sha256-Jo9N3iIaWnS1CJzYhgTv7vnW+8MLyzL8X4GRNjeEp+g=",
3
- "packages/components/_internal/dialog.ts": "sha256-Q7DPI2BipgFjPd3T8g2GGicrVal0cp0eMKXWFqcj64k=",
2
+ "packages/components/_internal/anchor.ts": "sha256-OPm/4Jf4UUo8IG+/4TAKpGDHtYpvxvGwyq3/RSZQIGc=",
3
+ "packages/components/_internal/dialog.ts": "sha256-796y3oNOVWarLvICTdi+d0/2axqSrzLVJiyBeh9X7bU=",
4
4
  "packages/components/_internal/floating.ts": "sha256-+WxgC4CtAlSr2qA1EkoDTgto535XLIPsvtOfdOK6CHk=",
5
5
  "packages/components/_internal/match.ts": "sha256-nKBpKWeow5ubAHUhOW8yOjlrKs0lqYdjbaYYfE8VoII=",
6
6
  "packages/components/_internal/react.ts": "sha256-SH63/haiB4Q93uFjMIMe5xZbaxENu3VI+GcidV8HELM=",
@@ -14,7 +14,7 @@
14
14
  "packages/components/badge/badge.tsx": "sha256-flEH8S2jZ/64n3Y/ROhC9+9rvF7wXaN0xLcMMwqNOVQ=",
15
15
  "packages/components/breadcrumb/breadcrumb.tsx": "sha256-Mt9mvmwwDgdp5/+mj5byIrh8+hicsp7R6UcvUlK0yog=",
16
16
  "packages/components/button/button.tsx": "sha256-khqYxcV3hlZ+Q+cYNTRXEpAfIijDFSvkuDJXMPtlk7g=",
17
- "packages/components/calendar/calendar.tsx": "sha256-uE22LI4jpU8ErR/oBmAkeKiu+Rp0bz3IXZVCurycpwc=",
17
+ "packages/components/calendar/calendar.tsx": "sha256-rWiS4YAueZfVoo6j5Fi3uN7A+yApe5U6HMm1woTVjys=",
18
18
  "packages/components/calendar/dates.ts": "sha256-mygYkoC70av2ZQ0vkxf885trwW97Wd10I4dptYQe+4A=",
19
19
  "packages/components/card/card.tsx": "sha256-aMKbv5DWYYWq7GZAFR9O1fuYE0H61WCjkvEbRMOd894=",
20
20
  "packages/components/carousel/carousel.tsx": "sha256-pamugpB6Ujt9Ylxd37jNF/ZwSb8iRkW/MoYe12nY3i4=",
@@ -30,7 +30,7 @@
30
30
  "packages/components/empty-state/empty-state.tsx": "sha256-uCKqYpr9vkozXZHpdl4GFtdX9ijcGOriCHvgyarBqRw=",
31
31
  "packages/components/hover-card/hover-card.tsx": "sha256-AyRbxfqDOYBgGlgjgrtQZm5DipArLEzQn6XnzjPd0ro=",
32
32
  "packages/components/input/input.tsx": "sha256-lbbheo+ydQTzyujTf0W7DD96TogOjifCyqj9c3h3W0g=",
33
- "packages/components/kbd/kbd.tsx": "sha256-wrPqzn1e82zJYoKzO7u94Bgq4+nPc0DXLc8GJ/4/3nY=",
33
+ "packages/components/kbd/kbd.tsx": "sha256-e8EO2Gw6JiUyrU0YcEZOaQNMel1pe/EcJrxwwgd1Ggk=",
34
34
  "packages/components/modal/modal.tsx": "sha256-vybxgBGYCrMYvJRnO1wDAc2VFQylu+mQIf5OZIcabX4=",
35
35
  "packages/components/number-input/number-input.tsx": "sha256-BDOyvCNtMULD/HK7uWHsYbGg79lrRDrVqtGQQrYHpmM=",
36
36
  "packages/components/number-input/number.ts": "sha256-IrHCQrEhI5ein9ifMFuSViSoxQUBoT3tNmmCu/paGGM=",
@@ -42,7 +42,7 @@
42
42
  "packages/components/progress/progress.tsx": "sha256-9OjecRNPWn7Bfe+C5IyXaKsW1NJae6X5gco1o0X5XkE=",
43
43
  "packages/components/radio-group/radio-group.tsx": "sha256-jhnSEBLkdpe8dv5us/Q1sMsQF4sKGRgDXWGKm2JSFew=",
44
44
  "packages/components/rating/rating.tsx": "sha256-zgPOQXzAiRE4qGNPQ8qat3SP1XSI/7567kA5VaT51P0=",
45
- "packages/components/resizable/resizable.tsx": "sha256-40sK2UyIR9Ek72KAu5nvbr44tKEY6JhC5Ftb++Wf6cI=",
45
+ "packages/components/resizable/resizable.tsx": "sha256-Yxlq88qElhv2Q5DooPdriZkawRS0QWx08nd6ybz5oeY=",
46
46
  "packages/components/segmented-control/segmented-control.tsx": "sha256-MCBG5XHFWCwbACctsYKbqe8mvSSR6pf60tyRgdCDKDA=",
47
47
  "packages/components/select/select.tsx": "sha256-m8QmKUGC4386XcklosSntal0XwUAFjKosTBQSF0dduQ=",
48
48
  "packages/components/sheet/sheet.tsx": "sha256-EIn3OeRDmXGHbYf/uihRh8aw3LmzarIFiyC9DUsL1jg=",
@@ -53,7 +53,7 @@
53
53
  "packages/components/stepper/stepper.tsx": "sha256-uI/dRmkbijlixHiGUceWcpaDzpEixrzQ1UTmoPbGZAY=",
54
54
  "packages/components/table/table.tsx": "sha256-ed1Qn2sIpxRvGdPDAb5ih5AcXr5PmHTHdlrJLYDYRp8=",
55
55
  "packages/components/tabs/tabs.tsx": "sha256-kWAQjE9mshqZL7V3NJTUiurp6M5Nu3vx5O1LsIgdV5Y=",
56
- "packages/components/tag-input/tag-input.tsx": "sha256-EK7xJTe3Y/S5Kn3vS0zBQg9lC+RVoGvky6HOAt+DnAw=",
56
+ "packages/components/tag-input/tag-input.tsx": "sha256-lc4ofz1/lUnb7B/GlFElVKXLbPwtJFAjE5vWwAY99fA=",
57
57
  "packages/components/textarea/textarea.tsx": "sha256-C9jMYZ63w+m6bgdLvHjvULRuoCe26q5zbgS4+ahWzr8=",
58
58
  "packages/components/time-picker/time-picker.tsx": "sha256-og8Cbf+e8oFYewfagUgjRzLHSIIlAZh+1OpAn9yNq70=",
59
59
  "packages/components/time-picker/times.ts": "sha256-V/4uqFZPn9gVnyx8cB9vwp/RocmTYaPmLxjfy8DPQOI=",