gridsmith-ui 0.29.1 → 0.30.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 (88) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +5 -1
  3. package/dist/DropdownMenu-DqT7ZQ0D.d.ts +39 -0
  4. package/dist/charts.js +4 -2
  5. package/dist/charts.js.map +1 -1
  6. package/dist/chat.js +4 -4
  7. package/dist/{chunk-OYNUU346.js → chunk-7QLXYRPD.js} +3 -12
  8. package/dist/chunk-7QLXYRPD.js.map +1 -0
  9. package/dist/chunk-F2BNJSON.js +1348 -0
  10. package/dist/chunk-F2BNJSON.js.map +1 -0
  11. package/dist/{chunk-37WOC7F7.js → chunk-GQVBZ4GW.js} +29 -8
  12. package/dist/chunk-GQVBZ4GW.js.map +1 -0
  13. package/dist/{chunk-MFAWJSMJ.js → chunk-INGF2CPW.js} +3 -22
  14. package/dist/chunk-INGF2CPW.js.map +1 -0
  15. package/dist/{chunk-I3MTQ3CS.js → chunk-KTPGMJUK.js} +5 -5
  16. package/dist/{chunk-I3MTQ3CS.js.map → chunk-KTPGMJUK.js.map} +1 -1
  17. package/dist/{chunk-MKFWHWBK.js → chunk-L6HWACK7.js} +7 -7
  18. package/dist/chunk-L6HWACK7.js.map +1 -0
  19. package/dist/chunk-LJYSVZMI.js +25 -0
  20. package/dist/chunk-LJYSVZMI.js.map +1 -0
  21. package/dist/{chunk-FUKSLQ77.js → chunk-NI5542ZM.js} +39 -35
  22. package/dist/chunk-NI5542ZM.js.map +1 -0
  23. package/dist/chunk-NKUCS67T.js +13 -0
  24. package/dist/chunk-NKUCS67T.js.map +1 -0
  25. package/dist/{chunk-RECCCA7Z.js → chunk-NLXQ323J.js} +4 -4
  26. package/dist/{chunk-RECCCA7Z.js.map → chunk-NLXQ323J.js.map} +1 -1
  27. package/dist/{chunk-ZI3OQDET.js → chunk-OIOII5L6.js} +93 -4
  28. package/dist/chunk-OIOII5L6.js.map +1 -0
  29. package/dist/{chunk-RJEUQ7RL.js → chunk-Q36JVJX4.js} +46 -89
  30. package/dist/chunk-Q36JVJX4.js.map +1 -0
  31. package/dist/{chunk-FD4YED7O.js → chunk-RHWTMTU5.js} +3 -3
  32. package/dist/{chunk-FD4YED7O.js.map → chunk-RHWTMTU5.js.map} +1 -1
  33. package/dist/chunk-TYNDXMBV.js +105 -0
  34. package/dist/chunk-TYNDXMBV.js.map +1 -0
  35. package/dist/{chunk-4TUJXDRU.js → chunk-UNS4TGGK.js} +20 -11
  36. package/dist/chunk-UNS4TGGK.js.map +1 -0
  37. package/dist/chunk-Z4MCD73B.js +316 -0
  38. package/dist/chunk-Z4MCD73B.js.map +1 -0
  39. package/dist/data-grid.d.ts +25 -6
  40. package/dist/data-grid.js +177 -55
  41. package/dist/data-grid.js.map +1 -1
  42. package/dist/editor-mentions.js +1 -1
  43. package/dist/editor.js +3 -3
  44. package/dist/{feather-FNBQ74RR.js → feather-XFFEFLTV.js} +5 -3
  45. package/dist/feather-XFFEFLTV.js.map +1 -0
  46. package/dist/{heroicons-DODCSYWD.js → heroicons-L6DOHBEA.js} +5 -3
  47. package/dist/heroicons-L6DOHBEA.js.map +1 -0
  48. package/dist/icons.d.ts +1 -1
  49. package/dist/icons.js +1 -1
  50. package/dist/index.d.ts +138 -39
  51. package/dist/index.js +660 -1568
  52. package/dist/index.js.map +1 -1
  53. package/dist/kanban.d.ts +26 -8
  54. package/dist/kanban.js +200 -76
  55. package/dist/kanban.js.map +1 -1
  56. package/dist/{lucide-ZWE3EPGP.js → lucide-JOORDTO6.js} +5 -3
  57. package/dist/lucide-JOORDTO6.js.map +1 -0
  58. package/dist/{phosphor-DIHPA4AJ.js → phosphor-TKGDYNGR.js} +5 -3
  59. package/dist/phosphor-TKGDYNGR.js.map +1 -0
  60. package/dist/resizable.js +10 -9
  61. package/dist/resizable.js.map +1 -1
  62. package/dist/roots.css +12 -8
  63. package/dist/{table-utils-CxnpFHRF.d.ts → table-utils-BXkP-2Hx.d.ts} +3 -1
  64. package/dist/{tabler-D3VYTSGI.js → tabler-YGETLYRU.js} +5 -3
  65. package/dist/tabler-YGETLYRU.js.map +1 -0
  66. package/dist/tokens.css +14 -0
  67. package/dist/utils.js.map +1 -1
  68. package/dist/virtualized.js +8 -7
  69. package/dist/virtualized.js.map +1 -1
  70. package/dist-static/tokens.css +14 -0
  71. package/package.json +1 -1
  72. package/dist/chunk-37WOC7F7.js.map +0 -1
  73. package/dist/chunk-4TUJXDRU.js.map +0 -1
  74. package/dist/chunk-FUKSLQ77.js.map +0 -1
  75. package/dist/chunk-MFAWJSMJ.js.map +0 -1
  76. package/dist/chunk-MKFWHWBK.js.map +0 -1
  77. package/dist/chunk-OYNUU346.js.map +0 -1
  78. package/dist/chunk-QM4SJKWV.js +0 -51
  79. package/dist/chunk-QM4SJKWV.js.map +0 -1
  80. package/dist/chunk-QNHVPE2B.js +0 -117
  81. package/dist/chunk-QNHVPE2B.js.map +0 -1
  82. package/dist/chunk-RJEUQ7RL.js.map +0 -1
  83. package/dist/chunk-ZI3OQDET.js.map +0 -1
  84. package/dist/feather-FNBQ74RR.js.map +0 -1
  85. package/dist/heroicons-DODCSYWD.js.map +0 -1
  86. package/dist/lucide-ZWE3EPGP.js.map +0 -1
  87. package/dist/phosphor-DIHPA4AJ.js.map +0 -1
  88. package/dist/tabler-D3VYTSGI.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { matchMentions, shownMentions, mentionOptionId, MentionList } from './chunk-6A5RHW2W.js';
3
- import { useOverlayLayer } from './chunk-ZI3OQDET.js';
3
+ import { useOverlayLayer } from './chunk-OIOII5L6.js';
4
4
  import './chunk-HP7WUZPK.js';
5
5
  import { useLatest } from './chunk-WH2FUFAC.js';
6
6
  import './chunk-JTU7OBYJ.js';
package/dist/editor.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { useScrollEdges } from './chunk-3BRQRKDO.js';
3
3
  import { useInputModality } from './chunk-7RKC5C7G.js';
4
- import { useBreakpoint } from './chunk-ZHUVLBCC.js';
5
4
  import { FormChangeCtx } from './chunk-72SDAX54.js';
5
+ import { useBreakpoint } from './chunk-ZHUVLBCC.js';
6
6
  import { useRevealFocus } from './chunk-HTXP5BMM.js';
7
- import { useOverlayLayer, useCloseOnFocusOut } from './chunk-ZI3OQDET.js';
8
- import { warnOnce, Icon } from './chunk-MKFWHWBK.js';
7
+ import { useOverlayLayer, useCloseOnFocusOut } from './chunk-OIOII5L6.js';
8
+ import { warnOnce, Icon } from './chunk-L6HWACK7.js';
9
9
  import { useLatest } from './chunk-WH2FUFAC.js';
10
10
  import { cn, FIELD_FOCUS_WITHIN_RING, FOCUS_RING, FIELD_FOCUS_RING } from './chunk-JTU7OBYJ.js';
11
11
  import { useState, useCallback, useContext, useRef, useEffect, useImperativeHandle } from 'react';
@@ -59,7 +59,9 @@ var CURATED = {
59
59
  "external-link": "FiExternalLink",
60
60
  "filter": "FiFilter",
61
61
  "lock": "FiLock",
62
- "map-pin": "FiMapPin"
62
+ "map-pin": "FiMapPin",
63
+ "play": "FiPlay",
64
+ "pause": "FiPause"
63
65
  };
64
66
  async function peer(load) {
65
67
  return await load();
@@ -75,5 +77,5 @@ async function loadExtended(load) {
75
77
  }
76
78
 
77
79
  export { loadCurated, loadExtended };
78
- //# sourceMappingURL=feather-FNBQ74RR.js.map
79
- //# sourceMappingURL=feather-FNBQ74RR.js.map
80
+ //# sourceMappingURL=feather-XFFEFLTV.js.map
81
+ //# sourceMappingURL=feather-XFFEFLTV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../showcase/src/lib/icon-packs/feather.ts"],"names":[],"mappings":";;;;AAwBA,IAAM,OAAA,GAAkC;AAAA,EACtC,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,OAAA,EAAS,aAAA;AAAA,EACT,UAAA,EAAY,YAAA;AAAA,EACZ,eAAA,EAAiB,gBAAA;AAAA,EACjB,OAAA,EAAS,KAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,eAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,UAAA,EAAY,YAAA;AAAA,EACZ,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,YAAA,EAAc,aAAA;AAAA,EACd,cAAA,EAAgB,eAAA;AAAA,EAChB,aAAA,EAAe,cAAA;AAAA,EACf,MAAA,EAAQ,QAAA;AAAA,EACR,aAAA,EAAe,eAAA;AAAA,EACf,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,YAAA,EAAc,aAAA;AAAA,EACd,cAAA,EAAgB,eAAA;AAAA,EAChB,cAAA,EAAgB,eAAA;AAAA,EAChB,OAAA,EAAS,UAAA;AAAA,EACT,MAAA,EAAQ,aAAA;AAAA,EACR,MAAA,EAAQ,YAAA;AAAA,EACR,YAAA,EAAc,aAAA;AAAA,EACd,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa,aAAA;AAAA,EACb,MAAA,EAAQ,QAAA;AAAA,EACR,SAAA,EAAW,UAAA;AAAA,EACX,MAAA,EAAQ,SAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,iBAAA,EAAmB,kBAAA;AAAA,EACnB,MAAA,EAAQ,QAAA;AAAA,EACR,UAAA,EAAY,YAAA;AAAA,EACZ,UAAA,EAAY,YAAA;AAAA,EACZ,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,YAAA;AAAA,EACb,KAAA,EAAO,OAAA;AAAA,EACP,SAAA,EAAW,UAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,eAAA,EAAiB,gBAAA;AAAA,EACjB,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,SAAA,EAAW,UAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS;AACX,CAAA;AAGA,eAAe,KAAK,IAAA,EAAkD;AACpE,EAAA,OAAQ,MAAM,IAAA,EAAK;AACrB;AAEA,eAAsB,YAAY,IAAA,EAAkC;AAClE,EAAA,OAAO,WAAA,CAAY,MAAM,IAAA,CAAK,IAAI,GAAG,OAAO,CAAA;AAC9C;AAEA,eAAsB,aAAa,IAAA,EAAkC;AACnE,EAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAI,CAAA;AAC3B,EAAA,MAAM,QAAA,GAAW,iBAAiB,GAAA,EAAK,IAAI,EAAE,WAAA,EAAa,MAAM,CAAA;AAChE,EAAA,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU,WAAA,CAAY,GAAA,EAAK,OAAO,CAAC,CAAA;AACjD,EAAA,OAAO,QAAA;AACT","file":"feather-XFFEFLTV.js","sourcesContent":["import type { IconMap, PackLoad } from './types'\nimport { buildExtendedMap, pickCurated } from './utils'\n\n/**\n * Feather (react-icons) icons.\n *\n * The pack is reached only through the import the app registers for it\n * (registerIconPack, Sprint 25.21 P1): no file the library publishes names the\n * package, so a bundler never looks for a pack the app didn't install\n * (Next.js's webpack resolved every such import, and failed the build). Never a\n * static named import either: a static import of an optional peer makes a\n * consumer's production build fail on Vite 8 when the peer is not installed\n * (Sprint 22 bench finding 1, 13 Sep 2026; showcase/src/test/\n * vite8-optional-peers-build.test.ts guards it). The curated names are strings\n * for the same reason; icon-completeness.test.tsx proves every one resolves in\n * the installed pack. If the import fails, loadPack in icons.tsx reports which\n * package to install.\n *\n * A name Feather doesn't draw has no entry, and Icon draws Lucide's glyph for\n * it, on the same grid and stroke (Lucide is Feather's continuation): the\n * sparkle, strikethrough, numbered list, quote, superscript, subscript,\n * highlighter and drag grip (Sprint 25.21 I1, the owner's D2). They had other\n * Feather glyphs standing in, a star for the assistant's sparkle among them.\n */\nconst CURATED: Record<string, string> = {\n \"home\": \"FiHome\",\n \"folder\": \"FiFolder\",\n \"chart\": \"FiBarChart2\",\n \"settings\": \"FiSettings\",\n \"chevron-right\": \"FiChevronRight\",\n \"close\": \"FiX\",\n \"plus\": \"FiPlus\",\n \"search\": \"FiSearch\",\n \"bell\": \"FiBell\",\n \"user\": \"FiUser\",\n \"check\": \"FiCheck\",\n \"warning\": \"FiAlertTriangle\",\n \"info\": \"FiInfo\",\n \"error\": \"FiAlertCircle\",\n \"clock\": \"FiClock\",\n \"calendar\": \"FiCalendar\",\n \"bold\": \"FiBold\",\n \"italic\": \"FiItalic\",\n \"underline\": \"FiUnderline\",\n \"align-left\": \"FiAlignLeft\",\n \"align-center\": \"FiAlignCenter\",\n \"align-right\": \"FiAlignRight\",\n \"list\": \"FiList\",\n \"list-checks\": \"FiCheckSquare\",\n \"link\": \"FiLink\",\n \"image\": \"FiImage\",\n \"table\": \"FiTable\",\n \"code\": \"FiCode\",\n \"minus\": \"FiMinus\",\n \"type\": \"FiType\",\n \"chevron-up\": \"FiChevronUp\",\n \"chevron-down\": \"FiChevronDown\",\n \"chevron-left\": \"FiChevronLeft\",\n \"trash\": \"FiTrash2\",\n \"undo\": \"FiRotateCcw\",\n \"redo\": \"FiRotateCw\",\n \"arrow-left\": \"FiArrowLeft\",\n \"mic\": \"FiMic\",\n \"paperclip\": \"FiPaperclip\",\n \"send\": \"FiSend\",\n \"log-out\": \"FiLogOut\",\n \"edit\": \"FiEdit2\",\n \"menu\": \"FiMenu\",\n \"more-horizontal\": \"FiMoreHorizontal\",\n \"star\": \"FiStar\",\n \"bookmark\": \"FiBookmark\",\n \"download\": \"FiDownload\",\n \"upload\": \"FiUpload\",\n \"file\": \"FiFile\",\n \"file-text\": \"FiFileText\",\n \"eye\": \"FiEye\",\n \"eye-off\": \"FiEyeOff\",\n \"copy\": \"FiCopy\",\n \"external-link\": \"FiExternalLink\",\n \"filter\": \"FiFilter\",\n \"lock\": \"FiLock\",\n \"map-pin\": \"FiMapPin\",\n \"play\": \"FiPlay\",\n \"pause\": \"FiPause\",\n}\n\n/** The pack's module, through the import handed to it (Sprint 25.21 P1). */\nasync function peer(load: PackLoad): Promise<Record<string, unknown>> {\n return (await load()) as Record<string, unknown>\n}\n\nexport async function loadCurated(load: PackLoad): Promise<IconMap> {\n return pickCurated(await peer(load), CURATED)\n}\n\nexport async function loadExtended(load: PackLoad): Promise<IconMap> {\n const mod = await peer(load)\n const extended = buildExtendedMap(mod, {}, { stripPrefix: \"Fi\" })\n Object.assign(extended, pickCurated(mod, CURATED))\n return extended\n}\n"]}
@@ -66,7 +66,9 @@ var CURATED = {
66
66
  "external-link": "ArrowTopRightOnSquareIcon",
67
67
  "filter": "FunnelIcon",
68
68
  "lock": "LockClosedIcon",
69
- "map-pin": "MapPinIcon"
69
+ "map-pin": "MapPinIcon",
70
+ "play": "PlayIcon",
71
+ "pause": "PauseIcon"
70
72
  };
71
73
  var TypeGlyph = forwardRef(function TypeGlyph2(props, ref) {
72
74
  return createElement(
@@ -89,5 +91,5 @@ async function loadExtended(load) {
89
91
  }
90
92
 
91
93
  export { loadCurated, loadExtended };
92
- //# sourceMappingURL=heroicons-DODCSYWD.js.map
93
- //# sourceMappingURL=heroicons-DODCSYWD.js.map
94
+ //# sourceMappingURL=heroicons-L6DOHBEA.js.map
95
+ //# sourceMappingURL=heroicons-L6DOHBEA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../showcase/src/lib/icon-packs/heroicons.ts"],"names":["TypeGlyph"],"mappings":"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","file":"heroicons-L6DOHBEA.js","sourcesContent":["import { createElement, forwardRef } from 'react'\nimport type { IconMap, PackLoad } from './types'\nimport { buildExtendedMap, pickCurated } from './utils'\n\n/**\n * Heroicons icons.\n *\n * The pack is reached only through the import the app registers for it\n * (registerIconPack, Sprint 25.21 P1): no file the library publishes names the\n * package, so a bundler never looks for a pack the app didn't install\n * (Next.js's webpack resolved every such import, and failed the build). Never a\n * static named import either: a static import of an optional peer makes a\n * consumer's production build fail on Vite 8 when the peer is not installed\n * (Sprint 22 bench finding 1, 13 Sep 2026; showcase/src/test/\n * vite8-optional-peers-build.test.ts guards it). The curated names are strings\n * for the same reason; icon-completeness.test.tsx proves every one resolves in\n * the installed pack. If the import fails, loadPack in icons.tsx reports which\n * package to install.\n */\nconst CURATED: Record<string, string> = {\n \"home\": \"HomeIcon\",\n \"folder\": \"FolderIcon\",\n \"chart\": \"ChartBarIcon\",\n \"settings\": \"Cog6ToothIcon\",\n \"chevron-right\": \"ChevronRightIcon\",\n \"close\": \"XMarkIcon\",\n \"plus\": \"PlusIcon\",\n \"search\": \"MagnifyingGlassIcon\",\n \"bell\": \"BellIcon\",\n \"user\": \"UserIcon\",\n \"check\": \"CheckIcon\",\n \"warning\": \"ExclamationTriangleIcon\",\n \"info\": \"InformationCircleIcon\",\n \"error\": \"ExclamationCircleIcon\",\n \"clock\": \"ClockIcon\",\n \"calendar\": \"CalendarDaysIcon\",\n \"bold\": \"BoldIcon\",\n \"italic\": \"ItalicIcon\",\n \"underline\": \"UnderlineIcon\",\n \"strikethrough\": \"StrikethroughIcon\",\n \"align-left\": \"Bars3BottomLeftIcon\",\n \"align-center\": \"Bars3Icon\",\n \"align-right\": \"Bars3BottomRightIcon\",\n \"list\": \"ListBulletIcon\",\n \"list-ordered\": \"NumberedListIcon\",\n \"list-checks\": \"ClipboardDocumentCheckIcon\",\n \"link\": \"LinkIcon\",\n \"image\": \"PhotoIcon\",\n \"table\": \"TableCellsIcon\",\n \"code\": \"CodeBracketIcon\",\n \"quote\": \"ChatBubbleBottomCenterTextIcon\",\n \"minus\": \"MinusIcon\",\n \"superscript\": \"H1Icon\",\n \"subscript\": \"H2Icon\",\n \"highlight\": \"PaintBrushIcon\",\n \"chevron-up\": \"ChevronUpIcon\",\n \"chevron-down\": \"ChevronDownIcon\",\n \"chevron-left\": \"ChevronLeftIcon\",\n \"trash\": \"TrashIcon\",\n \"undo\": \"ArrowUturnLeftIcon\",\n \"redo\": \"ArrowUturnRightIcon\",\n \"arrow-left\": \"ArrowLeftIcon\",\n \"grip-vertical\": \"Bars2Icon\",\n \"mic\": \"MicrophoneIcon\",\n \"paperclip\": \"PaperClipIcon\",\n \"send\": \"PaperAirplaneIcon\",\n \"log-out\": \"ArrowRightStartOnRectangleIcon\",\n \"edit\": \"PencilIcon\",\n \"menu\": \"Bars3Icon\",\n \"more-horizontal\": \"EllipsisHorizontalIcon\",\n \"star\": \"StarIcon\",\n \"bookmark\": \"BookmarkIcon\",\n \"download\": \"ArrowDownTrayIcon\",\n \"upload\": \"ArrowUpTrayIcon\",\n \"sparkles\": \"SparklesIcon\",\n \"file\": \"DocumentIcon\",\n \"file-text\": \"DocumentTextIcon\",\n \"eye\": \"EyeIcon\",\n \"eye-off\": \"EyeSlashIcon\",\n \"copy\": \"DocumentDuplicateIcon\",\n \"external-link\": \"ArrowTopRightOnSquareIcon\",\n \"filter\": \"FunnelIcon\",\n \"lock\": \"LockClosedIcon\",\n \"map-pin\": \"MapPinIcon\",\n \"play\": \"PlayIcon\",\n \"pause\": \"PauseIcon\",\n}\n\n/**\n * Heroicons draws no letter T, and its LanguageIcon (文A, translate) meant the wrong thing beside a document (round 28,\n * R28-35). So `type` is a T drawn in the pack's own outline style: a 24 px box, a 1.5 stroke that the theme's weight\n * overrides, round ends.\n */\nconst TypeGlyph = forwardRef<SVGSVGElement, Record<string, unknown>>(function TypeGlyph(props, ref) {\n return createElement('svg', { ref, xmlns: 'http://www.w3.org/2000/svg', fill: 'none', viewBox: '0 0 24 24', strokeWidth: 1.5, stroke: 'currentColor', 'aria-hidden': true, 'data-slot': 'icon', ...props },\n createElement('path', { strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M4.5 7.5v-3h15v3M12 4.5v15M9 19.5h6' }))\n})\n\n/** The pack's module, through the import handed to it (Sprint 25.21 P1). */\nasync function peer(load: PackLoad): Promise<Record<string, unknown>> {\n return (await load()) as Record<string, unknown>\n}\n\nexport async function loadCurated(load: PackLoad): Promise<IconMap> {\n return { ...pickCurated(await peer(load), CURATED), type: TypeGlyph }\n}\n\nexport async function loadExtended(load: PackLoad): Promise<IconMap> {\n const mod = await peer(load)\n const extended = buildExtendedMap(mod, {}, { stripSuffix: \"Icon\" })\n Object.assign(extended, pickCurated(mod, CURATED), { type: TypeGlyph })\n return extended\n}\n"]}
package/dist/icons.d.ts CHANGED
@@ -25,7 +25,7 @@ type PackLoad = () => Promise<unknown>;
25
25
  * Every name must have an alias (or auto-kebab match) in ALL five packs —
26
26
  * icon-completeness.test.tsx enforces this.
27
27
  */
28
- declare const CURATED_ICON_NAMES: readonly ["home", "folder", "chart", "settings", "chevron-right", "close", "plus", "search", "bell", "user", "check", "warning", "info", "error", "clock", "calendar", "bold", "italic", "underline", "strikethrough", "align-left", "align-center", "align-right", "list", "list-ordered", "list-checks", "link", "image", "table", "code", "quote", "minus", "superscript", "subscript", "highlight", "type", "chevron-up", "chevron-down", "chevron-left", "trash", "undo", "redo", "arrow-left", "grip-vertical", "mic", "paperclip", "send", "log-out", "edit", "menu", "more-horizontal", "star", "bookmark", "download", "upload", "sparkles", "file", "file-text", "eye", "eye-off", "copy", "external-link", "filter", "lock", "map-pin"];
28
+ declare const CURATED_ICON_NAMES: readonly ["home", "folder", "chart", "settings", "chevron-right", "close", "plus", "search", "bell", "user", "check", "warning", "info", "error", "clock", "calendar", "bold", "italic", "underline", "strikethrough", "align-left", "align-center", "align-right", "list", "list-ordered", "list-checks", "link", "image", "table", "code", "quote", "minus", "superscript", "subscript", "highlight", "type", "chevron-up", "chevron-down", "chevron-left", "trash", "undo", "redo", "arrow-left", "grip-vertical", "mic", "paperclip", "send", "log-out", "edit", "menu", "more-horizontal", "star", "bookmark", "download", "upload", "sparkles", "file", "file-text", "eye", "eye-off", "copy", "external-link", "filter", "lock", "map-pin", "play", "pause"];
29
29
  type CuratedIconName = (typeof CURATED_ICON_NAMES)[number];
30
30
  /**
31
31
  * Curated names provide autocomplete and work identically across all 5 packs.
package/dist/icons.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- export { Icon, IconProvider, preloadPack, registerIconPack } from './chunk-MKFWHWBK.js';
2
+ export { Icon, IconProvider, preloadPack, registerIconPack } from './chunk-L6HWACK7.js';
3
3
  //# sourceMappingURL=icons.js.map
4
4
  //# sourceMappingURL=icons.js.map
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import * as react from 'react';
2
2
  import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, LabelHTMLAttributes, TextareaHTMLAttributes, Ref, ReactElement, CSSProperties, HTMLAttributes, RefObject, KeyboardEvent, AnchorHTMLAttributes, ElementType } from 'react';
3
3
  import { IconSlot, IconName } from './icons.js';
4
+ import { a as DropdownMenuEntry, S as Side, A as Align } from './DropdownMenu-DqT7ZQ0D.js';
5
+ export { b as DropdownMenu, c as DropdownMenuDivider, d as DropdownMenuItem, D as DropdownMenuSubmenu } from './DropdownMenu-DqT7ZQ0D.js';
4
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
7
  import { M as MentionSuggestion } from './MentionList-CoNBRFGR.js';
6
- import { C as ColumnKind, B as BreakpointKey } from './table-utils-CxnpFHRF.js';
7
- export { a as BreakpointWidthProvider, u as useBreakpoint } from './table-utils-CxnpFHRF.js';
8
+ import { C as ColumnKind, B as BreakpointKey } from './table-utils-BXkP-2Hx.js';
9
+ export { a as BreakpointWidthProvider, u as useBreakpoint } from './table-utils-BXkP-2Hx.js';
8
10
  import { P as Pager, A as AppShellPreferences } from './use-pagination-QykGSREv.js';
9
11
  export { a as PaginationOptions, b as PreferencesContext, R as ResolvedPreferences, p as preferenceActionKey, u as usePagination, c as usePreferences } from './use-pagination-QykGSREv.js';
10
12
  export { B as BreadcrumbItem, a as Breadcrumbs, b as BreadcrumbsSeparator, c as BreadcrumbsSize, d as BreadcrumbsVariant } from './Breadcrumbs-CGS8GKl-.js';
@@ -26,29 +28,6 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
26
28
  }
27
29
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
28
30
 
29
- type Side = "top" | "right" | "bottom" | "left";
30
- type Align = "start" | "center" | "end";
31
-
32
- interface DropdownMenuItem {
33
- label: string;
34
- icon?: IconName;
35
- onClick: () => void;
36
- variant?: "default" | "destructive";
37
- disabled?: boolean;
38
- }
39
- interface DropdownMenuDivider {
40
- type: "divider";
41
- }
42
- type DropdownMenuEntry = DropdownMenuItem | DropdownMenuDivider;
43
- interface DropdownMenuProps {
44
- trigger: ReactNode;
45
- items: DropdownMenuEntry[];
46
- align?: Align;
47
- className?: string;
48
- container?: Element | DocumentFragment;
49
- }
50
- declare function DropdownMenu({ trigger, items, align, className, container }: DropdownMenuProps): react_jsx_runtime.JSX.Element;
51
-
52
31
  interface BulkAction {
53
32
  label: string;
54
33
  icon?: IconName;
@@ -105,6 +84,12 @@ interface FieldControlProps {
105
84
  /** The wiring a control may be given as props: by a Field's clone, or by a page that labels it itself. */
106
85
  interface FieldControlWiring {
107
86
  id?: string;
87
+ /**
88
+ * A name the page gives the control where nothing on screen names it (a row's checkbox, a filter's dropdown). It
89
+ * names the control's focusable element, or its group (Sprint 25.8.7 item 22: TSX checks no hyphenated attribute,
90
+ * so a control that didn't declare it dropped it silently).
91
+ */
92
+ "aria-label"?: string;
108
93
  "aria-labelledby"?: string;
109
94
  "aria-describedby"?: string;
110
95
  "aria-invalid"?: boolean | "true" | "false";
@@ -323,7 +308,13 @@ type CheckboxSize = "sm" | "md";
323
308
  /** A Field passes its wiring (0.21.0): its label names the box, and its hint and error describe it. */
324
309
  interface CheckboxProps extends FieldControlWiring {
325
310
  checked: boolean;
326
- onChange: (checked: boolean) => void;
311
+ /**
312
+ * The box's new state. `shiftKey`: whether Shift was held as it changed, by a click or by Space, so a list can select
313
+ * the run of rows up to it (Table, Sprint 25.8.7 item 23).
314
+ */
315
+ onChange: (checked: boolean, detail: {
316
+ shiftKey: boolean;
317
+ }) => void;
327
318
  label?: string;
328
319
  size?: CheckboxSize;
329
320
  disabled?: boolean;
@@ -371,6 +362,21 @@ declare function RadioGroup({ value, onChange: onChangeProp, options, orientatio
371
362
  /** A day of the week as `Date.getDay()` counts them: Sunday 0, Monday 1 … Saturday 6. */
372
363
  type Weekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;
373
364
 
365
+ /**
366
+ * Keyboard moves for a calendar's day grid (Sprint 25.7, D14(b)): the APG date
367
+ * picker's keys. Left and Right move a day, Up and Down a week, Home and End go
368
+ * to the ends of the week, PageUp and PageDown move a month (Shift: a year) and
369
+ * keep the day, clamped to the month's last day. All arithmetic is on calendar
370
+ * days in local time, so a clock change never lands on the wrong day.
371
+ */
372
+
373
+ /**
374
+ * Days a picker won't let the person choose, beside its min and max (Sprint 25.8.7 item 9): a function of the day, true
375
+ * for a day that can't be chosen (a holiday, a booked day), or the weekdays that can't, Sunday 0 to Saturday 6 ([0, 6]
376
+ * for weekends).
377
+ */
378
+ type DisabledDates = ((day: Date) => boolean) | readonly Weekday[];
379
+
374
380
  interface DatePickerProps extends Omit<FieldControlWiring, "id"> {
375
381
  value: Date | null;
376
382
  onChange: (date: Date | null) => void;
@@ -387,6 +393,12 @@ interface DatePickerProps extends Omit<FieldControlWiring, "id"> {
387
393
  /** Earliest / latest selectable day (inclusive). Days outside are disabled. */
388
394
  min?: Date;
389
395
  max?: Date;
396
+ /**
397
+ * Days that can't be chosen, beside min and max: a function of the day (true to exclude it: a holiday, a booked day),
398
+ * or the weekdays to exclude, Sunday 0 to Saturday 6 ([0, 6] for weekends). They show as unavailable, can't be picked
399
+ * by click, keyboard or typing, and a typed one marks the field invalid.
400
+ */
401
+ disabledDates?: DisabledDates;
390
402
  /**
391
403
  * Range context for paired "Start date" / "End date" pickers. The other
392
404
  * end of the range is shown as selected and the days between are shaded,
@@ -400,7 +412,7 @@ interface DatePickerProps extends Omit<FieldControlWiring, "id"> {
400
412
  /** The week's first day, Sunday 0 to Saturday 6. Default: the first day of the visitor's week, from their browser's languages, then the page's language, then Monday (gridsmith-ui 0.27.0); Sunday before. */
401
413
  weekStartsOn?: Weekday;
402
414
  }
403
- declare function DatePicker({ value, onChange: onChangeProp, placeholder, disabled, className, ref, container, error, label, id, size: sizeProp, min, max, range, weekStartsOn: weekStartsOnProp, ...wiring }: DatePickerProps): react_jsx_runtime.JSX.Element;
415
+ declare function DatePicker({ value, onChange: onChangeProp, placeholder, disabled, className, ref, container, error, label, id, size: sizeProp, min, max, disabledDates, range, weekStartsOn: weekStartsOnProp, ...wiring }: DatePickerProps): react_jsx_runtime.JSX.Element;
404
416
 
405
417
  interface DateRange {
406
418
  start: Date | null;
@@ -426,6 +438,12 @@ interface DateRangePickerProps extends Omit<FieldControlWiring, "id"> {
426
438
  /** Earliest / latest selectable day. */
427
439
  min?: Date;
428
440
  max?: Date;
441
+ /**
442
+ * Days that can't be chosen, beside min and max: a function of the day (true to exclude it: a holiday, a booked day),
443
+ * or the weekdays to exclude, Sunday 0 to Saturday 6 ([0, 6] for weekends). Neither end of the range can be one; the
444
+ * range may span them, as a week off spans its weekend.
445
+ */
446
+ disabledDates?: DisabledDates;
429
447
  /** Quick ranges listed beside the calendars. Pass [] to hide; omit for the defaults. */
430
448
  presets?: DateRangePreset[];
431
449
  /** The week's first day, Sunday 0 to Saturday 6. Default: the first day of the visitor's week, from their browser's languages, then the page's language, then Monday (gridsmith-ui 0.27.0); Sunday before. */
@@ -439,7 +457,7 @@ declare const DEFAULT_DATE_RANGE_PRESETS: DateRangePreset[];
439
457
  * the end (clicking before the start restarts the selection). Closes on
440
458
  * Escape or outside click. Pair with <Field> for label/hint/error wiring.
441
459
  */
442
- declare function DateRangePicker({ value, onChange: onChangeProp, placeholder, disabled, error, label, id, className, ref, container, min, max, presets, weekStartsOn: weekStartsOnProp, size: sizeProp, ...wiring }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
460
+ declare function DateRangePicker({ value, onChange: onChangeProp, placeholder, disabled, error, label, id, className, ref, container, min, max, disabledDates, presets, weekStartsOn: weekStartsOnProp, size: sizeProp, ...wiring }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
443
461
 
444
462
  /**
445
463
  * How something repeats (Sprint 25.19 R1): the iCalendar standard's rule (RFC 5545 `RRULE`), in the subset Outlook's and
@@ -733,8 +751,10 @@ interface FileUploadProps {
733
751
  label?: string;
734
752
  /** The file input's id. A Field passes its own, so its label opens the picker. */
735
753
  id?: string;
754
+ /** The zone's name where nothing on screen names it, given to its file input. Inside a Field, the Field's label names it. */
755
+ "aria-label"?: string;
736
756
  }
737
- declare function FileUpload({ onFiles, files, upload, onCancel, onRetry, onRemove, accept, multiple, maxSize, className, error, label, id }: FileUploadProps): react_jsx_runtime.JSX.Element;
757
+ declare function FileUpload({ onFiles, files, upload, onCancel, onRetry, onRemove, accept, multiple, maxSize, className, error, label, id, "aria-label": ariaLabel }: FileUploadProps): react_jsx_runtime.JSX.Element;
738
758
 
739
759
  interface SliderRangeProps {
740
760
  /**
@@ -803,8 +823,10 @@ interface NumberInputProps {
803
823
  allowDecimals?: boolean;
804
824
  /** Forwarded to the inner input element so a Label htmlFor can be associated. */
805
825
  id?: string;
826
+ /** The field's name where nothing on screen names it ("Seats"); inside a Field, the Field's label names it. */
827
+ "aria-label"?: string;
806
828
  }
807
- declare function NumberInput({ value, onChange: onChangeProp, min, max, step, disabled, placeholder, prefix, suffix, size: sizeProp, className, error, allowDecimals, id, }: NumberInputProps): react_jsx_runtime.JSX.Element;
829
+ declare function NumberInput({ value, onChange: onChangeProp, min, max, step, disabled, placeholder, prefix, suffix, size: sizeProp, className, error, allowDecimals, id, "aria-label": ariaLabel, }: NumberInputProps): react_jsx_runtime.JSX.Element;
808
830
 
809
831
  interface TagInputProps {
810
832
  value: string[];
@@ -832,8 +854,10 @@ interface PinInputProps {
832
854
  error?: boolean;
833
855
  /** Forwarded to the first pin box so a Label htmlFor can be associated. */
834
856
  id?: string;
857
+ /** The group's name where nothing on screen names it ("Verification code"). Default: "PIN input". */
858
+ "aria-label"?: string;
835
859
  }
836
- declare function PinInput({ value, onChange: onChangeProp, length, mask, disabled, size: sizeProp, className, error, id, }: PinInputProps): react_jsx_runtime.JSX.Element;
860
+ declare function PinInput({ value, onChange: onChangeProp, length, mask, disabled, size: sizeProp, className, error, id, "aria-label": ariaLabel, }: PinInputProps): react_jsx_runtime.JSX.Element;
837
861
 
838
862
  /** A Field passes its wiring (0.21.0): its label names the stars, and its hint and error describe them. */
839
863
  interface RatingProps extends FieldControlWiring {
@@ -856,8 +880,10 @@ interface ColorPickerProps {
856
880
  disabled?: boolean;
857
881
  className?: string;
858
882
  error?: boolean;
883
+ /** The picker's name where nothing on screen names it ("Brand colour"): it names the picker's group of parts. */
884
+ "aria-label"?: string;
859
885
  }
860
- declare function ColorPicker({ value, onChange: onChangeProp, showAlpha, swatches, disabled, className, error, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
886
+ declare function ColorPicker({ value, onChange: onChangeProp, showAlpha, swatches, disabled, className, error, "aria-label": ariaLabel, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
861
887
 
862
888
  interface InlineFieldErrorProps {
863
889
  message: string;
@@ -1459,6 +1485,11 @@ interface TagProps {
1459
1485
  maxWidth?: string;
1460
1486
  onRemove?: () => void;
1461
1487
  onClick?: () => void;
1488
+ /**
1489
+ * A Tag that toggles (a filter chip): whether it is on. Reported as a pressed button, so it needs `onClick`; leave it
1490
+ * out for a Tag whose click does something else.
1491
+ */
1492
+ selected?: boolean;
1462
1493
  disabled?: boolean;
1463
1494
  className?: string;
1464
1495
  children: ReactNode;
@@ -1752,20 +1783,35 @@ interface TreeViewProps {
1752
1783
  onSelect?: (ids: string[]) => void;
1753
1784
  onCheck?: (ids: string[]) => void;
1754
1785
  className?: string;
1786
+ /** The tree's name where nothing on screen names it ("Folders"). */
1787
+ "aria-label"?: string;
1788
+ /** The id of what names the tree on screen, such as its heading. */
1789
+ "aria-labelledby"?: string;
1755
1790
  }
1756
- declare function TreeView({ nodes, selectable, multiSelect, checkable, defaultExpanded, defaultSelected, selected: selectedProp, defaultChecked, onSelect, onCheck, className, }: TreeViewProps): react_jsx_runtime.JSX.Element;
1791
+ declare function TreeView({ nodes, selectable, multiSelect, checkable, defaultExpanded, defaultSelected, selected: selectedProp, defaultChecked, onSelect, onCheck, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, }: TreeViewProps): react_jsx_runtime.JSX.Element;
1757
1792
 
1758
1793
  interface CarouselProps {
1759
1794
  children: ReactNode[];
1795
+ /**
1796
+ * Moves on to the next slide by itself every `autoPlayInterval` ms, back to the first after the last, with a button to
1797
+ * stop and start it, first in the Tab order (the Authoring Practices' carousel). Keyboard focus coming to any part of
1798
+ * the carousel stops it, and it stays stopped until the person presses play; it pauses while the pointer is over it,
1799
+ * a slide is dragged or focus is in a slide; and it never starts by itself for a person who has asked for reduced
1800
+ * motion (they can still press play).
1801
+ */
1760
1802
  autoPlay?: boolean;
1761
1803
  autoPlayInterval?: number;
1762
1804
  loop?: boolean;
1763
1805
  showIndicators?: boolean;
1764
1806
  showArrows?: boolean;
1807
+ /** Names the carousel for assistive technology ("Featured projects"); each slide is named by its place, "3 of 10". */
1808
+ "aria-label"?: string;
1809
+ /** The id of a visible heading that names the carousel, in place of `aria-label`. */
1810
+ "aria-labelledby"?: string;
1765
1811
  className?: string;
1766
1812
  ref?: Ref<HTMLDivElement>;
1767
1813
  }
1768
- declare function Carousel({ children, autoPlay, autoPlayInterval, loop, showIndicators, showArrows, className, ref, }: CarouselProps): react_jsx_runtime.JSX.Element;
1814
+ declare function Carousel({ children, autoPlay, autoPlayInterval, loop, showIndicators, showArrows, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, ref, }: CarouselProps): react_jsx_runtime.JSX.Element;
1769
1815
 
1770
1816
  interface ChatMessageSender {
1771
1817
  name: string;
@@ -1949,7 +1995,7 @@ interface AsidePanelProps {
1949
1995
  }
1950
1996
  /**
1951
1997
  * A docked column beside the page content: the page narrows to make room
1952
- * instead of being covered (the Copilot / Sidekick layout). In-flow, so it is
1998
+ * instead of being covered (the docked assistant's layout). In-flow, so it is
1953
1999
  * a landmark (`role="complementary"`), not a dialog. Same non-modal contract as
1954
2000
  * Drawer modal={false}: no focus trap, Escape closes only from inside, focus
1955
2001
  * returns to the opener, an outside click does nothing, drafts survive closing.
@@ -2554,6 +2600,11 @@ interface GanttProps<T extends GanttItem = GanttItem> {
2554
2600
  labelHeader?: ReactNode;
2555
2601
  /** Controls after the built-in zoom, period and Today buttons, before the legend; false hides the bar (the legend stays). */
2556
2602
  toolbar?: ReactNode | false;
2603
+ /**
2604
+ * Days to shade under the rows (weekends, holidays), as TimeViewport's: asked about each day by its weekday (0 is
2605
+ * Sunday) and "YYYY-MM-DD" key. Drawn where a day is at least 4 px wide (the day, week and month zooms). Default none.
2606
+ */
2607
+ shadeDays?: (day: CalendarDay) => boolean;
2557
2608
  "aria-label": string;
2558
2609
  className?: string;
2559
2610
  }
@@ -2571,7 +2622,7 @@ interface GanttProps<T extends GanttItem = GanttItem> {
2571
2622
  * filter), focus moves to the row before it. Each item's accessible name carries its title, dates, status and
2572
2623
  * dependencies; the arrows and the scale are for sight only.
2573
2624
  */
2574
- declare function Gantt<T extends GanttItem = GanttItem>({ items, groups, selectedId, onSelect, statuses, zoom: zoomProp, defaultZoom, onZoomChange, today, weekStartsOn, locale, renderLabel, describe, labelHeader, toolbar, "aria-label": ariaLabel, className, }: GanttProps<T>): react_jsx_runtime.JSX.Element;
2625
+ declare function Gantt<T extends GanttItem = GanttItem>({ items, groups, selectedId, onSelect, statuses, zoom: zoomProp, defaultZoom, onZoomChange, today, weekStartsOn, locale, renderLabel, describe, labelHeader, toolbar, shadeDays, "aria-label": ariaLabel, className, }: GanttProps<T>): react_jsx_runtime.JSX.Element;
2575
2626
 
2576
2627
  type LinkUnderline = "hover" | "always" | "none";
2577
2628
  type LinkTone = "accent" | "muted" | "inherit";
@@ -2651,6 +2702,7 @@ interface LauncherProps {
2651
2702
  declare function Launcher({ variant, size, tone, edge, align, label, icon, badge, open, onOpenChange, panelId, whenOpen, offset, shortcut, container, className, }: LauncherProps): react.ReactPortal | null;
2652
2703
 
2653
2704
  type TabsOverflow = "scroll" | "hidden" | "truncate";
2705
+ type TabsActivation = "automatic" | "manual";
2654
2706
  interface Tab {
2655
2707
  id: string;
2656
2708
  label: string;
@@ -2672,6 +2724,12 @@ interface TabsArrayProps {
2672
2724
  mobile?: "scroll" | "dropdown";
2673
2725
  fullWidth?: boolean;
2674
2726
  overflow?: TabsOverflow;
2727
+ /**
2728
+ * How the keyboard selects a tab. "automatic" (the default): the arrow keys, Home and End select the tab they move to.
2729
+ * "manual": they move focus only, and Enter or Space selects, for tabs whose panels load or that navigate. Where the
2730
+ * tabs collapse to a Dropdown below md, a tab is chosen from its open list in either mode.
2731
+ */
2732
+ activation?: TabsActivation;
2675
2733
  className?: string;
2676
2734
  children?: never;
2677
2735
  }
@@ -2681,6 +2739,11 @@ interface TabsCompoundProps {
2681
2739
  orientation?: "horizontal" | "vertical";
2682
2740
  fullWidth?: boolean;
2683
2741
  overflow?: TabsOverflow;
2742
+ /**
2743
+ * How the keyboard selects a tab. "automatic" (the default): the arrow keys, Home and End select the tab they move to.
2744
+ * "manual": they move focus only, and Enter or Space selects, for tabs whose panels load or that navigate.
2745
+ */
2746
+ activation?: TabsActivation;
2684
2747
  className?: string;
2685
2748
  children: ReactNode;
2686
2749
  tabs?: never;
@@ -3366,7 +3429,12 @@ interface Notification {
3366
3429
  id: string;
3367
3430
  title: string;
3368
3431
  description?: string;
3369
- timestamp: string;
3432
+ /**
3433
+ * When it happened: a Date, milliseconds since the epoch, or an ISO 8601 string ("2026-10-14T09:30:00Z"). A dated row
3434
+ * is grouped by its day (Today, Yesterday, Earlier) and its time drawn as a RelativeTime; other text is shown as
3435
+ * given, under Earlier.
3436
+ */
3437
+ timestamp: TimeValue;
3370
3438
  read?: boolean;
3371
3439
  avatar?: string;
3372
3440
  initials?: string;
@@ -3411,6 +3479,22 @@ interface AlertAction {
3411
3479
  /** An icon name ("refresh"), drawn as the theme's icon at 14 px, or an element. */
3412
3480
  iconLeft?: IconSlot;
3413
3481
  }
3482
+ /** One of a consent notice's two choices. */
3483
+ interface AlertConsentChoice {
3484
+ label: string;
3485
+ onClick: () => void;
3486
+ /**
3487
+ * Draws this choice as the primary button. Equal weight is the default, and the better practice: an Accept that looks
3488
+ * like the way on nudges people to accept, which UK and EU data-protection guidance counts against freely given
3489
+ * consent. For a page that insists on one.
3490
+ */
3491
+ primary?: boolean;
3492
+ }
3493
+ /** A consent notice's two choices (Sprint 25.8.7 item 11): equal in weight by default, so neither is the easy way out. */
3494
+ interface AlertConsent {
3495
+ accept: AlertConsentChoice;
3496
+ reject: AlertConsentChoice;
3497
+ }
3414
3498
  interface AlertProps {
3415
3499
  variant: AlertVariant;
3416
3500
  title: string;
@@ -3423,6 +3507,18 @@ interface AlertProps {
3423
3507
  placement?: AlertPlacement;
3424
3508
  /** Expandable detail content — collapsed by default */
3425
3509
  expandableContent?: ReactNode;
3510
+ /**
3511
+ * A consent notice (analytics cookies, sharing data): a region named by its title, never an alert, with two choices of
3512
+ * equal weight that stay two buttons at any width, and never pinned over the page (a page-top placement draws it in
3513
+ * the page's flow). Once the person has chosen, pass `confirmation`.
3514
+ */
3515
+ consent?: AlertConsent;
3516
+ /**
3517
+ * With `consent`: what the person chose and where to change it ("You've accepted analytics cookies. You can change
3518
+ * your cookie settings at any time."). It takes the choices' place, is announced and takes focus, as the government
3519
+ * design system's cookie banner does; `dismissible` gives it a way to hide, shown once the choice is made.
3520
+ */
3521
+ confirmation?: ReactNode;
3426
3522
  className?: string;
3427
3523
  }
3428
3524
  declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
@@ -4101,7 +4197,10 @@ declare function DangerZone({ title, description, children, className }: DangerZ
4101
4197
  interface TextOverflowProps {
4102
4198
  /** Max visible lines before truncation. 1 = single-line ellipsis, >1 = line-clamp-N. */
4103
4199
  lines?: number;
4104
- /** Show tooltip/hovercard when text is truncated. Default: true. */
4200
+ /**
4201
+ * Show the full text when it is cut: on hover, on keyboard focus (cut text is a Tab stop, drawing the focus outline,
4202
+ * except inside a control, whose own focus reaches it) and on a tap. Default: true.
4203
+ */
4105
4204
  tooltip?: boolean;
4106
4205
  /** Custom tooltip content. Defaults to the text content of children. */
4107
4206
  tooltipContent?: ReactNode;
@@ -4142,4 +4241,4 @@ interface UseTextOverflowResult {
4142
4241
  */
4143
4242
  declare function useTextOverflow(options?: UseTextOverflowOptions): UseTextOverflowResult;
4144
4243
 
4145
- export { Accordion, ActionPanel, ActionPanelGroup, AddAnother, type AddAnotherProps, Alert, type AlertPlacement, AppShell, type AppShellContextValue, type AppShellFocus, AppShellPreferences, type AppShellTheme, AsidePanel, type AsidePanelProps, type AsidePanelSide, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSeverity, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, type CalendarColour, type CalendarDay, type CalendarDayClickDetail, type CalendarEvent, type CalendarEventAction, type CalendarEventAttendee, type CalendarProps, type CalendarSize, type CalendarView, Card, CardContent, CardDescription, CardFooter, CardGrid, type CardGridProps, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, type ChatMessage, type ChatMessageAction, type ChatMessageLayout, ChatMessageList, type ChatMessageSender, type ChatMessageSource, type ChatMessageStatus, ChatPanel, type ChatPanelProps, type ChatPanelStatusTone, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, type ControlSize, ControlSizeContext, CornerPanel, type CornerPanelEdge, type CornerPanelProps, DEFAULT_DATE_RANGE_PRESETS, DangerZone, type DangerZoneProps, DataList, type DateInput, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeWords, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, type DestructiveActionHandle, type DestructiveActionOptions, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, type DropdownMenuDivider, type DropdownMenuEntry, type DropdownMenuItem, EmptyState, EntityCell, type EventCategory, Field, type FieldControlProps, type FieldLabel, type FieldProps, FileUpload, type FileUploadItem, type FileUploadRequestOptions, type FileUploadStatus, type FitLabelsOptions, type FittedLabel, type FlowNavigate, type FlowProgress, FlowSaved, type FlowSavedProps, type FlowStep, type FlowSteps, FormWrapper, Gantt, type GanttGroup, type GanttItem, type GanttProps, type GanttStatus, type GanttTone, type GridKeyboard, type GridKeyboardOptions, HoverCard, INPUT_MODALITY_ATTR, InlineFieldError, Input, type InputModality, Kbd, Label, type LabelBox, Launcher, type LauncherEdge, type LauncherProps, type LauncherVariant, type LauncherWhenOpen, Link, type LinkProps, LocaleProvider, type LocaleProviderProps, MentionInput, type MentionInputProps, MentionSuggestion, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, type Occurrence, PageActions, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pager, Pagination, PinInput, Popover, Progress, type PromiseToastMessages, RadioGroup, Rating, type Recurrence, type RecurrenceFrequency, RecurrencePicker, type RecurrencePickerProps, type RecurrencePreset, type RecurrenceScope, RecurrenceScopeDialog, type RecurrenceScopeDialogProps, RelativeTime, type RelativeTimeProps, type RepeatChange, type RepeatingEvent, ScrollArea, SectionHeading, type SectionHeadingProps, SegmentedControl, SettingsLayout, type SettingsLayoutProps, type SettingsSection, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SkipLink, SliderRange, type SortDir, Spinner, StackedList, type StackedListVariant, StatsCard, StatusDot, type StatusDotVariant, Stepper, TIME_ZOOMS, type Tab, Table, type TableDensity, type TableProps, type TableRow, TableToolbar, type TableToolbarActiveFilter, type TableToolbarFilterOption, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimeBar, type TimeBarProps, TimePicker, TimeRow, type TimeRowProps, type TimeScale, TimeScaleHeader, type TimeScaleHeaderProps, type TimeScaleOptions, type TimeTick, type TimeValue, TimeViewport, type TimeViewportHandle, type TimeViewportLayout, type TimeViewportProps, type TimeViewportState, type TimeZoom, Timeline, TimezoneSelect, type TimezoneSelectProps, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type Trend, type UseFlowStepsOptions, type UseTextOverflowOptions, type UseTextOverflowResult, type WeekOfMonth, type Weekday, browserTimeZone, canonicalTimeZone, countEdited, dateOfDay, dayOf, deleteOccurrence, describeRecurrence, endDayOf, fitLabel, fitLabels, formatDateRange, formatFullTime, formatRelativeTime, inputModality, installInputModality, nthOf, occurrenceOn, occurrences, parseRRule, readFlowProgress, readRecurrence, recurrencePresets, sameRecurrence, saveOccurrence, timeExtent, timeZoneOffset, toRRule, useAppShell, useBrowserTimeZone, useContentWidth, useDestructiveAction, useFittedLabels, useFlowSteps, useFormContext, useFormatLocale, useGridKeyboard, useHydrated, useInputModality, useRelativeTimeFormat, useRevealFocus, useSidebar, useTextMeasure, useTextOverflow, useTimeScale, useTimeViewport, useTimeViewportLayout, useToast, useToastOptional, useUnsavedChanges };
4244
+ export { Accordion, ActionPanel, ActionPanelGroup, AddAnother, type AddAnotherProps, Alert, type AlertConsent, type AlertConsentChoice, type AlertPlacement, AppShell, type AppShellContextValue, type AppShellFocus, AppShellPreferences, type AppShellTheme, AsidePanel, type AsidePanelProps, type AsidePanelSide, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSeverity, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, type CalendarColour, type CalendarDay, type CalendarDayClickDetail, type CalendarEvent, type CalendarEventAction, type CalendarEventAttendee, type CalendarProps, type CalendarSize, type CalendarView, Card, CardContent, CardDescription, CardFooter, CardGrid, type CardGridProps, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, type ChatMessage, type ChatMessageAction, type ChatMessageLayout, ChatMessageList, type ChatMessageSender, type ChatMessageSource, type ChatMessageStatus, ChatPanel, type ChatPanelProps, type ChatPanelStatusTone, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, type ControlSize, ControlSizeContext, CornerPanel, type CornerPanelEdge, type CornerPanelProps, DEFAULT_DATE_RANGE_PRESETS, DangerZone, type DangerZoneProps, DataList, type DateInput, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DateRangeWords, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, type DestructiveActionHandle, type DestructiveActionOptions, Dialog, type DisabledDates, Divider, Dock, Drawer, Dropdown, DropdownMenuEntry, EmptyState, EntityCell, type EventCategory, Field, type FieldControlProps, type FieldLabel, type FieldProps, FileUpload, type FileUploadItem, type FileUploadRequestOptions, type FileUploadStatus, type FitLabelsOptions, type FittedLabel, type FlowNavigate, type FlowProgress, FlowSaved, type FlowSavedProps, type FlowStep, type FlowSteps, FormWrapper, Gantt, type GanttGroup, type GanttItem, type GanttProps, type GanttStatus, type GanttTone, type GridKeyboard, type GridKeyboardOptions, HoverCard, INPUT_MODALITY_ATTR, InlineFieldError, Input, type InputModality, Kbd, Label, type LabelBox, Launcher, type LauncherEdge, type LauncherProps, type LauncherVariant, type LauncherWhenOpen, Link, type LinkProps, LocaleProvider, type LocaleProviderProps, MentionInput, type MentionInputProps, MentionSuggestion, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, type Occurrence, PageActions, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pager, Pagination, PinInput, Popover, Progress, type PromiseToastMessages, RadioGroup, Rating, type Recurrence, type RecurrenceFrequency, RecurrencePicker, type RecurrencePickerProps, type RecurrencePreset, type RecurrenceScope, RecurrenceScopeDialog, type RecurrenceScopeDialogProps, RelativeTime, type RelativeTimeProps, type RepeatChange, type RepeatingEvent, ScrollArea, SectionHeading, type SectionHeadingProps, SegmentedControl, SettingsLayout, type SettingsLayoutProps, type SettingsSection, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SkipLink, SliderRange, type SortDir, Spinner, StackedList, type StackedListVariant, StatsCard, StatusDot, type StatusDotVariant, Stepper, TIME_ZOOMS, type Tab, Table, type TableDensity, type TableProps, type TableRow, TableToolbar, type TableToolbarActiveFilter, type TableToolbarFilterOption, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimeBar, type TimeBarProps, TimePicker, TimeRow, type TimeRowProps, type TimeScale, TimeScaleHeader, type TimeScaleHeaderProps, type TimeScaleOptions, type TimeTick, type TimeValue, TimeViewport, type TimeViewportHandle, type TimeViewportLayout, type TimeViewportProps, type TimeViewportState, type TimeZoom, Timeline, TimezoneSelect, type TimezoneSelectProps, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type Trend, type UseFlowStepsOptions, type UseTextOverflowOptions, type UseTextOverflowResult, type WeekOfMonth, type Weekday, browserTimeZone, canonicalTimeZone, countEdited, dateOfDay, dayOf, deleteOccurrence, describeRecurrence, endDayOf, fitLabel, fitLabels, formatDateRange, formatFullTime, formatRelativeTime, inputModality, installInputModality, nthOf, occurrenceOn, occurrences, parseRRule, readFlowProgress, readRecurrence, recurrencePresets, sameRecurrence, saveOccurrence, timeExtent, timeZoneOffset, toRRule, useAppShell, useBrowserTimeZone, useContentWidth, useDestructiveAction, useFittedLabels, useFlowSteps, useFormContext, useFormatLocale, useGridKeyboard, useHydrated, useInputModality, useRelativeTimeFormat, useRevealFocus, useSidebar, useTextMeasure, useTextOverflow, useTimeScale, useTimeViewport, useTimeViewportLayout, useToast, useToastOptional, useUnsavedChanges };