@sableui/react 0.16.0 → 0.18.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 (95) hide show
  1. package/AGENTS.md +10 -3
  2. package/CHANGELOG.md +132 -0
  3. package/README.md +11 -4
  4. package/bin/sable.mjs +160 -18
  5. package/dist/activity-DT8VK9fx.d.ts +25 -0
  6. package/dist/adapters/github.d.ts +41 -0
  7. package/dist/adapters/github.js +24 -0
  8. package/dist/blocks/approval-block.js +30 -48
  9. package/dist/blocks/approval-block.meta.js +7 -8
  10. package/dist/blocks/index.d.ts +1 -1
  11. package/dist/components/activity-heatmap/activity-heatmap.js +420 -0
  12. package/dist/components/activity-heatmap/activity-heatmap.meta.js +142 -0
  13. package/dist/components/activity-heatmap/index.js +9 -0
  14. package/dist/components/code-block/code-block.js +5 -3
  15. package/dist/components/code-block/code-block.meta.js +6 -0
  16. package/dist/components/dialog/dialog.js +25 -5
  17. package/dist/components/dialog/dialog.meta.js +26 -5
  18. package/dist/components/media-image/media-image.js +3 -1
  19. package/dist/components/media-image/media-image.meta.js +15 -1
  20. package/dist/components/media-tile/media-tile.js +13 -1
  21. package/dist/components/media-tile/media-tile.meta.js +10 -0
  22. package/dist/components/page-header/page-header.js +9 -4
  23. package/dist/components/page-header/page-header.meta.js +26 -1
  24. package/dist/components/pill/pill.meta.js +15 -6
  25. package/dist/components/pill/pill.variants.js +1 -0
  26. package/dist/components/search-input/search-input.js +30 -5
  27. package/dist/components/search-input/search-input.meta.js +29 -4
  28. package/dist/components/section-header/section-header.js +27 -17
  29. package/dist/components/section-header/section-header.meta.js +27 -5
  30. package/dist/components/section-rail/index.js +7 -0
  31. package/dist/components/section-rail/section-rail.js +153 -0
  32. package/dist/components/section-rail/section-rail.meta.js +189 -0
  33. package/dist/components/sheet/sheet.js +15 -3
  34. package/dist/components/sheet/sheet.meta.js +2 -2
  35. package/dist/file-hashes.json +53 -39
  36. package/dist/icon-sets/reicon.js +23 -1
  37. package/dist/index.d.ts +364 -27
  38. package/dist/index.js +11 -1
  39. package/dist/layout/AspectBox.js +2 -5
  40. package/dist/layout/Bleed.js +10 -6
  41. package/dist/layout/Center.js +11 -3
  42. package/dist/layout/Columns.js +6 -3
  43. package/dist/layout/Grid.js +14 -6
  44. package/dist/layout/GridOverlay.js +7 -7
  45. package/dist/layout/Region.js +18 -3
  46. package/dist/layout/Row.js +27 -20
  47. package/dist/layout/Spacer.js +13 -2
  48. package/dist/layout/SplitPane.js +1 -1
  49. package/dist/layout/Stack.js +25 -18
  50. package/dist/layout/index.d.ts +57 -6
  51. package/dist/lib/chart/activity.js +32 -0
  52. package/dist/lib/chart/calendar.js +67 -0
  53. package/dist/lib/chart/chart-tooltip.js +2 -2
  54. package/dist/lib/chart/heat.js +55 -0
  55. package/dist/lib/focus-return.js +53 -0
  56. package/dist/lib/taxonomy.js +2 -0
  57. package/dist/lib/use-active-section.js +59 -0
  58. package/dist/styles.css +122 -114
  59. package/llms/blocks/approval-block.md +40 -55
  60. package/llms/components/activity-heatmap.md +133 -0
  61. package/llms/components/code-block.md +1 -0
  62. package/llms/components/dialog.md +34 -3
  63. package/llms/components/media-image.md +12 -0
  64. package/llms/components/media-tile.md +21 -0
  65. package/llms/components/page-header.md +16 -1
  66. package/llms/components/pill.md +24 -5
  67. package/llms/components/search-input.md +37 -4
  68. package/llms/components/section-header.md +28 -4
  69. package/llms/components/section-rail.md +101 -0
  70. package/llms/components/sheet.md +2 -2
  71. package/llms/layout/aspect-box.md +1 -1
  72. package/llms/layout/bleed.md +1 -1
  73. package/llms/layout/center.md +1 -1
  74. package/llms/layout/columns.md +1 -1
  75. package/llms/layout/grid.md +1 -1
  76. package/llms/layout/region.md +1 -1
  77. package/llms/layout/row.md +9 -1
  78. package/llms/layout/spacer.md +1 -1
  79. package/llms/layout/split-pane.md +1 -1
  80. package/llms/layout/stack.md +1 -1
  81. package/llms/tasks/auditing-an-app.md +31 -0
  82. package/llms/tasks/getting-started.md +10 -3
  83. package/llms/tasks/using-presets.md +1 -2
  84. package/llms-full.txt +516 -90
  85. package/llms.txt +5 -3
  86. package/package.json +6 -1
  87. package/registry.json +745 -46
  88. package/scripts/adoption.mjs +239 -0
  89. package/scripts/agent-setup.mjs +110 -18
  90. package/scripts/grade.mjs +17 -0
  91. package/scripts/wiring.mjs +2 -1
  92. package/skills/entry/SKILL.md +1 -1
  93. package/skills/sable/SKILL.md +33 -4
  94. package/skills/sable/agents/openai.yaml +1 -1
  95. package/targets/ios.json +18 -0
@@ -8,6 +8,7 @@ import {
8
8
  useState
9
9
  } from "react";
10
10
  import { cn } from "../../lib/cn.js";
11
+ import { FocusReturnProvider, useFocusReturn, useFocusReturnDefault } from "../../lib/focus-return.js";
11
12
  import { withPortalThemeScope } from "../../lib/portal-theme-scope.js";
12
13
  import { PresentationProvider, StackedActionsContext, usePresentation } from "../../lib/presentation.js";
13
14
  import { mergeRefs } from "../../lib/refs.js";
@@ -27,15 +28,20 @@ function Sheet({
27
28
  defaultSnapPoint,
28
29
  onSnapPointChange,
29
30
  snapToSequentialPoints,
31
+ open,
32
+ onOpenChange,
30
33
  ...props
31
34
  }) {
35
+ const focus = useFocusReturn(open, onOpenChange);
32
36
  const [side, setSide] = useState("right");
33
37
  const snaps = Boolean(snapPoints?.length);
34
38
  const context = useMemo(() => ({ reportSide: setSide, snaps }), [snaps]);
35
- return /* @__PURE__ */ jsx(SheetRootContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
39
+ return /* @__PURE__ */ jsx(SheetRootContext.Provider, { value: context, children: /* @__PURE__ */ jsx(FocusReturnProvider, { value: focus.focusReturn, children: /* @__PURE__ */ jsx(
36
40
  Base.Root,
37
41
  {
38
42
  ...props,
43
+ open,
44
+ onOpenChange: focus.onOpenChange,
39
45
  snapPoints: snaps && side === "bottom" ? snapPoints : void 0,
40
46
  snapPoint,
41
47
  defaultSnapPoint,
@@ -43,7 +49,7 @@ function Sheet({
43
49
  snapToSequentialPoints,
44
50
  swipeDirection: SWIPE_DIRECTION[side]
45
51
  }
46
- ) });
52
+ ) }) });
47
53
  }
48
54
  function isDevelopment() {
49
55
  try {
@@ -81,10 +87,12 @@ function SheetContent({
81
87
  children,
82
88
  side,
83
89
  initialFocus,
90
+ finalFocus,
84
91
  ref,
85
92
  style,
86
93
  ...props
87
94
  }) {
95
+ const focusReturn = useFocusReturnDefault();
88
96
  const root = useContext(SheetRootContext);
89
97
  const resolvedSide = side ?? "right";
90
98
  const reportSide = root?.reportSide;
@@ -98,7 +106,10 @@ function SheetContent({
98
106
  }
99
107
  const popupRef = useRef(null);
100
108
  const [popup, setPopup] = useState(null);
101
- const mergedRef = useMemo(() => mergeRefs(popupRef, ref, setPopup), [ref]);
109
+ const mergedRef = useMemo(
110
+ () => mergeRefs(popupRef, ref, setPopup, focusReturn?.popupRef),
111
+ [ref, focusReturn]
112
+ );
102
113
  const keyboardInset = useKeyboardInset(resolvedSide === "bottom" && popup !== null);
103
114
  const keyboardVars = { "--sheet-keyboard-inset": `${keyboardInset}px` };
104
115
  useIsomorphicLayoutEffect(() => {
@@ -121,6 +132,7 @@ function SheetContent({
121
132
  {
122
133
  ref: mergedRef,
123
134
  initialFocus: initialFocus === void 0 ? (type) => type === "touch" ? popupRef.current : true : initialFocus,
135
+ finalFocus: finalFocus === void 0 ? focusReturn?.finalFocus : finalFocus,
124
136
  "data-sable-sheet": resolvedSide,
125
137
  "data-snap-points": snaps ? "" : void 0,
126
138
  className: cn(sheetVariants({ side }), className),
@@ -93,7 +93,7 @@ var sheetMeta = {
93
93
  {
94
94
  name: "Sheet (Root)",
95
95
  type: "Base UI Drawer.Root props (open, defaultOpen, onOpenChange, onOpenChangeComplete, modal, disablePointerDismissal, actionsRef, handle, snapPoints, snapPoint, defaultSnapPoint, onSnapPointChange, snapToSequentialPoints) \u2014 minus swipeDirection",
96
- description: `Controls open state. Uncontrolled by default. The dismiss swipe direction is not a prop: it follows SheetContent's side. onOpenChange reports reason "swipe" when a swipe closed it.`
96
+ description: `Controls open state. Uncontrolled by default. The dismiss swipe direction is not a prop: it follows SheetContent's side. onOpenChange reports reason "swipe" when a swipe closed it. Records the element focused when the sheet opens, trigger or not, and returns focus there on close.`
97
97
  },
98
98
  {
99
99
  name: "snapPoints",
@@ -171,7 +171,7 @@ var sheetMeta = {
171
171
  "The panel scrolls its own content (thin scrollbar, contained overscroll) when it outgrows its bound \u2014 the full height on left/right, 80vh on top/bottom.",
172
172
  "Esc and click-outside dismiss by default; on touch, a swipe toward the sheet's own edge dismisses too. A short or slow drag springs back.",
173
173
  "Swipe is an extra path, never the only one: Esc, click-outside and SheetClose all still work.",
174
- "Focus matches Dialog: the first tabbable on mouse/keyboard open, the panel itself on touch (so the virtual keyboard stays down); focus returns to the trigger on close.",
174
+ "Focus matches Dialog: the first tabbable on mouse/keyboard open, the panel itself on touch (so the virtual keyboard stays down). On close, focus returns to the element that held it when the sheet opened: the SheetTrigger, or your own button when it drives a controlled open. It is captured before the content mounts, so an autoFocus field inside cannot displace it; an explicit finalFocus on SheetContent wins.",
175
175
  "Render a SheetClose inside SheetContent so screen-reader users can escape the popup.",
176
176
  "Slide animation runs via data-[starting-style]/data-[ending-style] attributes on the motion-duration token; while swiping the panel tracks the finger directly, and a released swipe finishes on the same token (scaled by flick speed), so reduced motion makes it instant.",
177
177
  "A mouse drag that starts on sheet content selects text rather than dragging the panel; mouse dragging only starts from the padding edge.",
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "dist/_contract-CDa9-NdB.d.ts": "062fb08b461ea845",
3
+ "dist/activity-DT8VK9fx.d.ts": "528ef87bbc766d76",
4
+ "dist/adapters/github.d.ts": "7e30b303e1daa370",
5
+ "dist/adapters/github.js": "3a2c4593e2ad1e18",
3
6
  "dist/blocks/api-keys-block.js": "0c6d54126392e4fb",
4
7
  "dist/blocks/api-keys-block.meta.js": "41903f3a7743b068",
5
- "dist/blocks/approval-block.js": "252c908185759a46",
6
- "dist/blocks/approval-block.meta.js": "8a356ebd1f534a54",
8
+ "dist/blocks/approval-block.js": "b84f4d310ce30664",
9
+ "dist/blocks/approval-block.meta.js": "e7c947fca94d9d42",
7
10
  "dist/blocks/chat-thread-block.js": "e0981afdbc8e9b84",
8
11
  "dist/blocks/chat-thread-block.meta.js": "e91fdb9ab2277c27",
9
12
  "dist/blocks/command-palette-block.js": "498ad5d4787f9336",
@@ -26,7 +29,7 @@
26
29
  "dist/blocks/goal-progress-block.meta.js": "3e5b376bf58bdb4b",
27
30
  "dist/blocks/hero-block.js": "ac74e80d4d7d2ad9",
28
31
  "dist/blocks/hero-block.meta.js": "2dd2e5be2472a563",
29
- "dist/blocks/index.d.ts": "940238f0164f6d03",
32
+ "dist/blocks/index.d.ts": "5f4a38dda1460f56",
30
33
  "dist/blocks/index.js": "690417c222dc4d2a",
31
34
  "dist/blocks/invite-team-block.js": "be4df15518252535",
32
35
  "dist/blocks/invite-team-block.meta.js": "fd57b632f0f32276",
@@ -89,6 +92,9 @@
89
92
  "dist/components/accordion/accordion.js": "4f41376e208ac29d",
90
93
  "dist/components/accordion/accordion.meta.js": "27ec6ddc51914b4a",
91
94
  "dist/components/accordion/index.js": "4181a2720d5c1ed8",
95
+ "dist/components/activity-heatmap/activity-heatmap.js": "a368d466be3be631",
96
+ "dist/components/activity-heatmap/activity-heatmap.meta.js": "3723ae0dd4aa5b9d",
97
+ "dist/components/activity-heatmap/index.js": "5b15c2c64908174f",
92
98
  "dist/components/app-header/app-header.js": "2149806a151306c4",
93
99
  "dist/components/app-header/app-header.meta.js": "04631f9c2069f30d",
94
100
  "dist/components/app-header/index.js": "012804273e56f06d",
@@ -169,8 +175,8 @@
169
175
  "dist/components/code/code.js": "4be51f4cfb283bb2",
170
176
  "dist/components/code/code.meta.js": "8e5173d8b59e846b",
171
177
  "dist/components/code/index.js": "34e13acc13b39cfd",
172
- "dist/components/code-block/code-block.js": "b96d1db552e8f8f0",
173
- "dist/components/code-block/code-block.meta.js": "838282c7addf5dd2",
178
+ "dist/components/code-block/code-block.js": "b66aed579438bca7",
179
+ "dist/components/code-block/code-block.meta.js": "d7e869100f45e650",
174
180
  "dist/components/code-block/index.js": "e40982950359204b",
175
181
  "dist/components/collapsible/collapsible.js": "fecb96bdc056e7bb",
176
182
  "dist/components/collapsible/collapsible.meta.js": "5d677ef03ee2f7e9",
@@ -207,8 +213,8 @@
207
213
  "dist/components/destructive-action-modal/destructive-action-modal.js": "3806d39cb3fb0cdf",
208
214
  "dist/components/destructive-action-modal/destructive-action-modal.meta.js": "a1a0a6d441f602b4",
209
215
  "dist/components/destructive-action-modal/index.js": "23b46c051e8c4e4e",
210
- "dist/components/dialog/dialog.js": "efdca40a11df5bff",
211
- "dist/components/dialog/dialog.meta.js": "98de0730d852851c",
216
+ "dist/components/dialog/dialog.js": "b8bfdb6f5ed94dfd",
217
+ "dist/components/dialog/dialog.meta.js": "376df87eddc07ef9",
212
218
  "dist/components/dialog/index.js": "4ed284cc7b4692d5",
213
219
  "dist/components/disclosure-picker/disclosure-picker.js": "6f7a28eee89e1c1f",
214
220
  "dist/components/disclosure-picker/disclosure-picker.meta.js": "c32223ff1ff098bc",
@@ -273,11 +279,11 @@
273
279
  "dist/components/marquee/marquee.js": "0e56221adeebb781",
274
280
  "dist/components/marquee/marquee.meta.js": "6c406bddddc5e010",
275
281
  "dist/components/media-image/index.js": "d423b869156da3f6",
276
- "dist/components/media-image/media-image.js": "f68499e9f84b6e64",
277
- "dist/components/media-image/media-image.meta.js": "0778fd790511a701",
282
+ "dist/components/media-image/media-image.js": "f5555312b3415e89",
283
+ "dist/components/media-image/media-image.meta.js": "ff488a1d4f80a5a9",
278
284
  "dist/components/media-tile/index.js": "00281f6f8cc246d1",
279
- "dist/components/media-tile/media-tile.js": "faf79c27ec15c8d4",
280
- "dist/components/media-tile/media-tile.meta.js": "6a21970f9b463812",
285
+ "dist/components/media-tile/media-tile.js": "bf91dd717a27613a",
286
+ "dist/components/media-tile/media-tile.meta.js": "a1323b8f1f945e58",
281
287
  "dist/components/media-tile/media-tile.variants.js": "e22c08004b4a55ad",
282
288
  "dist/components/menu/index.js": "c368589e92d3a189",
283
289
  "dist/components/menu/menu.js": "d31a3cd0d737447d",
@@ -323,8 +329,8 @@
323
329
  "dist/components/overflow-menu/overflow-menu.js": "ae21a09facac6c64",
324
330
  "dist/components/overflow-menu/overflow-menu.meta.js": "d53fec5c53db5035",
325
331
  "dist/components/page-header/index.js": "e4da1f42473e10d1",
326
- "dist/components/page-header/page-header.js": "6dc82f8bd222c2f5",
327
- "dist/components/page-header/page-header.meta.js": "94dba3334f2cfb47",
332
+ "dist/components/page-header/page-header.js": "c45cc2ebd02d1ed2",
333
+ "dist/components/page-header/page-header.meta.js": "7b0d7fc28cb748f8",
328
334
  "dist/components/page-loader/index.js": "73989c61d8df9fee",
329
335
  "dist/components/page-loader/page-loader.js": "39eb2d9a5747c950",
330
336
  "dist/components/page-loader/page-loader.meta.js": "dc43852dd1b4dcea",
@@ -346,8 +352,8 @@
346
352
  "dist/components/pie-chart/pie-chart.meta.js": "04078e0b1d7853fc",
347
353
  "dist/components/pill/index.js": "20ff8b276a4f0515",
348
354
  "dist/components/pill/pill.js": "1c1d6180acce0e53",
349
- "dist/components/pill/pill.meta.js": "4ff1e10fbef549e9",
350
- "dist/components/pill/pill.variants.js": "6b6a824b44bfae13",
355
+ "dist/components/pill/pill.meta.js": "1b8ff366e5cd39ba",
356
+ "dist/components/pill/pill.variants.js": "d3bc3ce5d3871472",
351
357
  "dist/components/popover/index.js": "125e46824329b2b9",
352
358
  "dist/components/popover/popover.js": "8eb733ebc4c5c3cb",
353
359
  "dist/components/popover/popover.meta.js": "b69532ebeaf000c6",
@@ -381,11 +387,14 @@
381
387
  "dist/components/scrub-field/scrub-field.js": "1f6ebbdd1e7b0d64",
382
388
  "dist/components/scrub-field/scrub-field.meta.js": "1cf791914578f353",
383
389
  "dist/components/search-input/index.js": "075fb823b5e7bc3f",
384
- "dist/components/search-input/search-input.js": "457351a57507282c",
385
- "dist/components/search-input/search-input.meta.js": "8bc6e7ec025c61f3",
390
+ "dist/components/search-input/search-input.js": "c5f60cd755d435bb",
391
+ "dist/components/search-input/search-input.meta.js": "a71d684f391b3a10",
386
392
  "dist/components/section-header/index.js": "11f5658b3805ce6e",
387
- "dist/components/section-header/section-header.js": "eafb346c6efc6d84",
388
- "dist/components/section-header/section-header.meta.js": "011c13a1916b1d04",
393
+ "dist/components/section-header/section-header.js": "d8ef1818ba904a7a",
394
+ "dist/components/section-header/section-header.meta.js": "b3cbb9a0a37db87f",
395
+ "dist/components/section-rail/index.js": "30fd32b042f1721e",
396
+ "dist/components/section-rail/section-rail.js": "0eb588ecae9c68ce",
397
+ "dist/components/section-rail/section-rail.meta.js": "fa1993dcde9735db",
389
398
  "dist/components/segmented-bar/index.js": "3f544d3233ab578f",
390
399
  "dist/components/segmented-bar/segmented-bar.js": "26d87e5c14fddc87",
391
400
  "dist/components/segmented-bar/segmented-bar.meta.js": "490381c6d0692291",
@@ -401,8 +410,8 @@
401
410
  "dist/components/settings-menu/settings-menu.meta.js": "46bdda712ce13d85",
402
411
  "dist/components/settings-menu/settings-menu.variants.js": "1eefc629793ed7b3",
403
412
  "dist/components/sheet/index.js": "b19aacba55e7de80",
404
- "dist/components/sheet/sheet.js": "9f96dceaa8f091cf",
405
- "dist/components/sheet/sheet.meta.js": "c327b7a9c399c12a",
413
+ "dist/components/sheet/sheet.js": "183a4dfb92da3bc3",
414
+ "dist/components/sheet/sheet.meta.js": "d407fb54c9eb7f62",
406
415
  "dist/components/sheet/sheet.variants.js": "80af36bc54106a55",
407
416
  "dist/components/show-more/index.js": "e7c7e37ffedde2c2",
408
417
  "dist/components/show-more/show-more.js": "842adf12a2d31a26",
@@ -508,9 +517,9 @@
508
517
  "dist/icon-sets/brands.generated.js": "901e198df0563b0b",
509
518
  "dist/icon-sets/brands.js": "9a37d8739f14f2a9",
510
519
  "dist/icon-sets/reicon.d.ts": "52f6e41dc8137b4e",
511
- "dist/icon-sets/reicon.js": "0f73074baac9b866",
512
- "dist/index.d.ts": "59bef7457412bae9",
513
- "dist/index.js": "b6ac1ec603ffaa55",
520
+ "dist/icon-sets/reicon.js": "9cac6fee5ad95a62",
521
+ "dist/index.d.ts": "ad94845a460a1df4",
522
+ "dist/index.js": "fe1322803fff6cf8",
514
523
  "dist/ios/chrome.css": "a7ca9e3735d8658e",
515
524
  "dist/ios/chrome.js": "37091fef7b68bd28",
516
525
  "dist/ios/frame.css": "dd2703c944ce575a",
@@ -526,33 +535,36 @@
526
535
  "dist/ios/sheet.js": "9cdd685cde4609fe",
527
536
  "dist/ios/styles.css": "057885e6f8429a12",
528
537
  "dist/ios/theme.js": "dfc8112eccfb7c7a",
529
- "dist/layout/AspectBox.js": "4b50c3987baca27c",
530
- "dist/layout/Bleed.js": "cb567b6a19b85c94",
531
- "dist/layout/Center.js": "dd1543f34aed94ba",
532
- "dist/layout/Columns.js": "023a72bd3166fa1c",
533
- "dist/layout/Grid.js": "70ebd69b52edb4e6",
534
- "dist/layout/GridOverlay.js": "d07e43330b1ca3ed",
538
+ "dist/layout/AspectBox.js": "ecb51bf8689afe54",
539
+ "dist/layout/Bleed.js": "192fa3833ecda57c",
540
+ "dist/layout/Center.js": "d3b61dd229c2beed",
541
+ "dist/layout/Columns.js": "218fbaf5d486d819",
542
+ "dist/layout/Grid.js": "fe22c21836bda34a",
543
+ "dist/layout/GridOverlay.js": "626e6517d5cb2ce0",
535
544
  "dist/layout/Page.js": "a02d3a5534492c6a",
536
- "dist/layout/Region.js": "c76c75a54f405649",
537
- "dist/layout/Row.js": "83d771177f752610",
545
+ "dist/layout/Region.js": "ee32da8bd1b7d6df",
546
+ "dist/layout/Row.js": "c9a95bedbacc0dbf",
538
547
  "dist/layout/SafeArea.js": "1e4739d51e0eb71d",
539
- "dist/layout/Spacer.js": "bf8d580752acab02",
540
- "dist/layout/SplitPane.js": "2807f49a8917b70f",
541
- "dist/layout/Stack.js": "44a775e68e21f673",
548
+ "dist/layout/Spacer.js": "a601bb6c555beb43",
549
+ "dist/layout/SplitPane.js": "45ed3a3f795a924a",
550
+ "dist/layout/Stack.js": "2ab65a7c88843fe9",
542
551
  "dist/layout/_responsive.js": "8c2ca35545706660",
543
552
  "dist/layout/_safeArea.js": "7ed61b7dde139cd5",
544
- "dist/layout/index.d.ts": "57b40bbed43af5d3",
553
+ "dist/layout/index.d.ts": "c6e7f389a079bf07",
545
554
  "dist/layout/index.js": "f755ffdfe16d844c",
546
555
  "dist/lib/anchored-scroll.js": "c077ce237b964310",
547
556
  "dist/lib/bleed.js": "73fe9b97e5d528b3",
557
+ "dist/lib/chart/activity.js": "a7c35cf1f8643caa",
558
+ "dist/lib/chart/calendar.js": "25ecaa6d5279c965",
548
559
  "dist/lib/chart/cartesian.js": "27ae6dcb86dfbf45",
549
560
  "dist/lib/chart/chart-center.js": "bb826860d493ec09",
550
561
  "dist/lib/chart/chart-frame.js": "748f838a3e3c17d5",
551
562
  "dist/lib/chart/chart-legend.js": "751476cea4ec7db9",
552
- "dist/lib/chart/chart-tooltip.js": "e42c899bd2ecf521",
563
+ "dist/lib/chart/chart-tooltip.js": "97b93418bb334f57",
553
564
  "dist/lib/chart/dim.js": "e67e46858379174a",
554
565
  "dist/lib/chart/format.js": "f0256bbe226a0967",
555
566
  "dist/lib/chart/geometry.js": "10acd4c2626b0969",
567
+ "dist/lib/chart/heat.js": "ca6d47e6d28d4428",
556
568
  "dist/lib/chart/motion.js": "8edb50cf54b30a1a",
557
569
  "dist/lib/chart/scale.js": "b4b329322bfdd17a",
558
570
  "dist/lib/chart/types.js": "5665ade26e2b21a7",
@@ -561,6 +573,7 @@
561
573
  "dist/lib/component-guidance.js": "add930d690472d31",
562
574
  "dist/lib/density.js": "304cdaf6733fbad1",
563
575
  "dist/lib/field-shell.js": "cd47989e26b4f1ce",
576
+ "dist/lib/focus-return.js": "7166e37a052bd125",
564
577
  "dist/lib/glyphs.js": "9164497629a3fa70",
565
578
  "dist/lib/heading-row.js": "ef1faf4955e0fec6",
566
579
  "dist/lib/highlight-glide.js": "555668682863ac0d",
@@ -575,8 +588,9 @@
575
588
  "dist/lib/segmented.js": "43c21955f7f3ae33",
576
589
  "dist/lib/selection-card.js": "43c49c8c51dde54c",
577
590
  "dist/lib/status-tone.js": "61f0a8bb4fb9c7d6",
578
- "dist/lib/taxonomy.js": "4ecb616f502009c0",
591
+ "dist/lib/taxonomy.js": "b68841921136149d",
579
592
  "dist/lib/trim-label.js": "9998d45e03c95515",
593
+ "dist/lib/use-active-section.js": "9cdda6529e332ac8",
580
594
  "dist/lib/use-caret-trigger.js": "e9dba2b3bc27f18e",
581
595
  "dist/lib/use-copy.js": "5cf22621e4d5e83b",
582
596
  "dist/lib/use-edge-fade.js": "392e8c33f072fd21",
@@ -619,7 +633,7 @@
619
633
  "dist/presets/index.d.ts": "454f6f809cc08d6a",
620
634
  "dist/presets/index.js": "fe9c4f8231bf18b2",
621
635
  "dist/registry-CyL28OzJ.d.ts": "b068fc89571517d8",
622
- "dist/styles.css": "7b8fe19fbd504785",
636
+ "dist/styles.css": "d02c108604a72bb5",
623
637
  "dist/theme-provider-BydfM5Z0.d.ts": "71808ed18b268496",
624
638
  "dist/themes/_contract.js": "f566700602557a22",
625
639
  "dist/themes/atelier/atelier.css": "ca476ee9fe980307",
@@ -87,6 +87,14 @@ import { VolumeLow2 } from "reicon-react/icons/VolumeLow2";
87
87
  import { VolumeCross } from "reicon-react/icons/VolumeCross";
88
88
  import { Playlist } from "reicon-react/icons/Playlist";
89
89
  import { MusicNote } from "reicon-react/icons/MusicNote";
90
+ import { Briefcase } from "reicon-react/icons/Briefcase";
91
+ import { Layers } from "reicon-react/icons/Layers";
92
+ import { Microphone } from "reicon-react/icons/Microphone";
93
+ import { Video } from "reicon-react/icons/Video";
94
+ import { SignalStream } from "reicon-react/icons/SignalStream";
95
+ import { Doc2 } from "reicon-react/icons/Doc2";
96
+ import { Palette2 } from "reicon-react/icons/Palette2";
97
+ import { Gamepad } from "reicon-react/icons/Gamepad";
90
98
  import { memo } from "react";
91
99
  import { jsx } from "react/jsx-runtime";
92
100
  var ICONS = {
@@ -191,7 +199,21 @@ var ICONS = {
191
199
  replay: Restart,
192
200
  motion: PlaybackSpeed,
193
201
  // Added for the add-reaction pill under a chat bubble.
194
- emoji: EmojiHappy
202
+ emoji: EmojiHappy,
203
+ // Added when a portfolio imported reicon-react directly for its work,
204
+ // projects, audio, video, live, press, design and games sections.
205
+ // `broadcast` is the radiating-waves mark that reads as "live" (Reicon's
206
+ // `Station` tower is too detailed at text size); `newspaper` is Reicon's
207
+ // folded paper, its nearest press glyph; `palette` is the painter's palette,
208
+ // not Reicon's `Palette` (a swatch fan, which reads as colour picking).
209
+ briefcase: Briefcase,
210
+ layers: Layers,
211
+ microphone: Microphone,
212
+ video: Video,
213
+ broadcast: SignalStream,
214
+ newspaper: Doc2,
215
+ palette: Palette2,
216
+ gamepad: Gamepad
195
217
  };
196
218
  var WEIGHTS = {
197
219
  regular: "Outline",