@atelier-ui/react 0.2.41 → 0.2.43

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 (110) hide show
  1. package/CHANGELOG.md +33 -8
  2. package/package.json +1 -1
  3. package/src/lib/accordion/atl-accordion.css +2 -8
  4. package/src/lib/accordion/atl-accordion.d.ts.map +1 -1
  5. package/src/lib/accordion/atl-accordion.js +30 -8
  6. package/src/lib/accordion/atl-accordion.js.map +1 -1
  7. package/src/lib/alert/atl-alert.css +18 -4
  8. package/src/lib/alert/atl-alert.d.ts.map +1 -1
  9. package/src/lib/alert/atl-alert.js +3 -1
  10. package/src/lib/alert/atl-alert.js.map +1 -1
  11. package/src/lib/avatar/atl-avatar.css +75 -25
  12. package/src/lib/avatar/atl-avatar.d.ts.map +1 -1
  13. package/src/lib/avatar/atl-avatar.js +6 -3
  14. package/src/lib/avatar/atl-avatar.js.map +1 -1
  15. package/src/lib/badge/atl-badge.css +8 -4
  16. package/src/lib/badge/atl-badge.d.ts.map +1 -1
  17. package/src/lib/badge/atl-badge.js +3 -2
  18. package/src/lib/badge/atl-badge.js.map +1 -1
  19. package/src/lib/breadcrumbs/atl-breadcrumbs.css +5 -9
  20. package/src/lib/breadcrumbs/atl-breadcrumbs.d.ts.map +1 -1
  21. package/src/lib/breadcrumbs/atl-breadcrumbs.js +1 -1
  22. package/src/lib/breadcrumbs/atl-breadcrumbs.js.map +1 -1
  23. package/src/lib/button/atl-button.css +20 -8
  24. package/src/lib/button/atl-button.d.ts.map +1 -1
  25. package/src/lib/button/atl-button.js.map +1 -1
  26. package/src/lib/card/atl-card.css +2 -12
  27. package/src/lib/card/atl-card.d.ts.map +1 -1
  28. package/src/lib/card/atl-card.js +6 -1
  29. package/src/lib/card/atl-card.js.map +1 -1
  30. package/src/lib/chat/atl-chat.css +28 -13
  31. package/src/lib/chat/atl-chat.d.ts.map +1 -1
  32. package/src/lib/chat/atl-chat.js +11 -7
  33. package/src/lib/chat/atl-chat.js.map +1 -1
  34. package/src/lib/checkbox/atl-checkbox.css +13 -6
  35. package/src/lib/checkbox/atl-checkbox.d.ts.map +1 -1
  36. package/src/lib/checkbox/atl-checkbox.js +1 -1
  37. package/src/lib/checkbox/atl-checkbox.js.map +1 -1
  38. package/src/lib/code-block/atl-code-block.css +4 -1
  39. package/src/lib/combobox/atl-combobox.css +27 -17
  40. package/src/lib/combobox/atl-combobox.d.ts.map +1 -1
  41. package/src/lib/combobox/atl-combobox.js +4 -2
  42. package/src/lib/combobox/atl-combobox.js.map +1 -1
  43. package/src/lib/dialog/atl-dialog.css +3 -12
  44. package/src/lib/dialog/atl-dialog.d.ts.map +1 -1
  45. package/src/lib/dialog/atl-dialog.js +3 -1
  46. package/src/lib/dialog/atl-dialog.js.map +1 -1
  47. package/src/lib/drawer/atl-drawer.css +6 -5
  48. package/src/lib/drawer/atl-drawer.d.ts.map +1 -1
  49. package/src/lib/drawer/atl-drawer.js.map +1 -1
  50. package/src/lib/icon/atl-icon.d.ts.map +1 -1
  51. package/src/lib/icon/atl-icon.js +4 -2
  52. package/src/lib/icon/atl-icon.js.map +1 -1
  53. package/src/lib/icons.d.ts.map +1 -1
  54. package/src/lib/icons.js +48 -10
  55. package/src/lib/icons.js.map +1 -1
  56. package/src/lib/input/atl-input.css +9 -5
  57. package/src/lib/input/atl-input.d.ts.map +1 -1
  58. package/src/lib/input/atl-input.js +1 -1
  59. package/src/lib/input/atl-input.js.map +1 -1
  60. package/src/lib/menu/atl-menu.css +11 -14
  61. package/src/lib/menu/atl-menu.d.ts.map +1 -1
  62. package/src/lib/menu/atl-menu.js +3 -1
  63. package/src/lib/menu/atl-menu.js.map +1 -1
  64. package/src/lib/pagination/atl-pagination.d.ts.map +1 -1
  65. package/src/lib/pagination/atl-pagination.js +7 -9
  66. package/src/lib/pagination/atl-pagination.js.map +1 -1
  67. package/src/lib/progress/atl-progress.d.ts.map +1 -1
  68. package/src/lib/progress/atl-progress.js +3 -1
  69. package/src/lib/progress/atl-progress.js.map +1 -1
  70. package/src/lib/radio/atl-radio.css +5 -4
  71. package/src/lib/radio/atl-radio.d.ts +1 -1
  72. package/src/lib/radio/atl-radio.d.ts.map +1 -1
  73. package/src/lib/radio/atl-radio.js +1 -1
  74. package/src/lib/radio/atl-radio.js.map +1 -1
  75. package/src/lib/radio-group/atl-radio-group.d.ts.map +1 -1
  76. package/src/lib/radio-group/atl-radio-group.js.map +1 -1
  77. package/src/lib/select/atl-select.css +7 -3
  78. package/src/lib/select/atl-select.d.ts.map +1 -1
  79. package/src/lib/select/atl-select.js +2 -2
  80. package/src/lib/select/atl-select.js.map +1 -1
  81. package/src/lib/skeleton/atl-skeleton.d.ts.map +1 -1
  82. package/src/lib/skeleton/atl-skeleton.js +14 -4
  83. package/src/lib/skeleton/atl-skeleton.js.map +1 -1
  84. package/src/lib/spec.d.ts.map +1 -1
  85. package/src/lib/spec.js.map +1 -1
  86. package/src/lib/stepper/atl-stepper.d.ts.map +1 -1
  87. package/src/lib/stepper/atl-stepper.js +14 -7
  88. package/src/lib/stepper/atl-stepper.js.map +1 -1
  89. package/src/lib/table/atl-table.css +10 -9
  90. package/src/lib/table/atl-table.d.ts +1 -1
  91. package/src/lib/table/atl-table.d.ts.map +1 -1
  92. package/src/lib/table/atl-table.js +1 -1
  93. package/src/lib/table/atl-table.js.map +1 -1
  94. package/src/lib/tabs/atl-tabs.css +19 -5
  95. package/src/lib/tabs/atl-tabs.d.ts.map +1 -1
  96. package/src/lib/tabs/atl-tabs.js.map +1 -1
  97. package/src/lib/textarea/atl-textarea.css +4 -4
  98. package/src/lib/textarea/atl-textarea.d.ts.map +1 -1
  99. package/src/lib/textarea/atl-textarea.js +1 -1
  100. package/src/lib/textarea/atl-textarea.js.map +1 -1
  101. package/src/lib/toast/atl-toast.css +25 -13
  102. package/src/lib/toast/atl-toast.d.ts +1 -1
  103. package/src/lib/toast/atl-toast.d.ts.map +1 -1
  104. package/src/lib/toast/atl-toast.js +1 -1
  105. package/src/lib/toast/atl-toast.js.map +1 -1
  106. package/src/lib/toggle/atl-toggle.css +7 -5
  107. package/src/lib/toggle/atl-toggle.d.ts.map +1 -1
  108. package/src/lib/toggle/atl-toggle.js.map +1 -1
  109. package/src/lib/tooltip/atl-tooltip.css +6 -10
  110. package/styles/tokens.css +59 -43
@@ -1 +1 @@
1
- {"version":3,"file":"atl-menu.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/menu/atl-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useRef,\n useState,\n useEffect,\n ReactNode,\n HTMLAttributes,\n RefObject,\n} from 'react';\nimport type {\n AtlMenuSpec,\n AtlMenuItemSpec,\n} from '../spec';\nimport './atl-menu.css';\n\ninterface MenuContextValue {\n close: () => void;\n}\n\nconst MenuContext = createContext<MenuContextValue>({ close: () => undefined });\n\n/**\n * Properties for the AtlMenu component.\n */\nexport interface AtlMenuProps extends HTMLAttributes<HTMLDivElement>, AtlMenuSpec {\n /**\n * The visual style variant of the menu.\n */\n variant?: 'default' | 'compact';\n /**\n * The menu items to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A menu component for displaying a list of choices.\n */\nexport function AtlMenu({ variant = 'default', children, className, ...rest }: AtlMenuProps) {\n const classes = ['atl-menu', `variant-${variant}`, className].filter(Boolean).join(' ');\n return (\n <div className={classes} role=\"menu\" {...rest}>\n {children}\n </div>\n );\n}\n\n/**\n * Properties for the AtlMenuItem component.\n */\nexport interface AtlMenuItemProps\n extends HTMLAttributes<HTMLButtonElement>,\n AtlMenuItemSpec {\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Callback triggered when the item is selected.\n */\n onTriggered?: () => void;\n /**\n * The content of the menu item.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual item within a menu.\n */\nexport function AtlMenuItem({\n disabled = false,\n onTriggered,\n children,\n className,\n onClick,\n ...rest\n}: AtlMenuItemProps) {\n const ctx = useContext(MenuContext);\n const classes = ['atl-menu-item', disabled && 'is-disabled', className]\n .filter(Boolean)\n .join(' ');\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!disabled) {\n onTriggered?.();\n ctx.close();\n onClick?.(e);\n }\n };\n\n return (\n <button\n className={classes}\n role=\"menuitem\"\n disabled={disabled}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\n/**\n * A separator for dividing groups of menu items.\n */\nexport function AtlMenuSeparator() {\n return <hr className=\"atl-menu-separator\" />;\n}\n\n/**\n * Properties for the AtlMenuTrigger component.\n */\nexport interface AtlMenuTriggerProps {\n /**\n * The menu to be displayed.\n */\n menu: ReactNode;\n /**\n * Render prop that provides trigger functionality.\n */\n children: (props: {\n onClick: () => void;\n ref: RefObject<HTMLElement | null>;\n }) => ReactNode;\n}\n\n/**\n * A component that manages the state of a menu and its trigger.\n */\nexport function AtlMenuTrigger({ menu, children }: AtlMenuTriggerProps) {\n const [open, setOpen] = useState(false);\n const triggerRef = useRef<HTMLElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n // Menu-button ARIA on the trigger element itself (the render prop binds the\n // ref to it) — mirrors what the CDK menu trigger does in the Angular adapter,\n // so consumers get correct semantics without wiring attributes by hand.\n useEffect(() => {\n const el = triggerRef.current;\n if (!el) return;\n el.setAttribute('aria-haspopup', 'menu');\n el.setAttribute('aria-expanded', String(open));\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n !menuRef.current?.contains(e.target as Node) &&\n !triggerRef.current?.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape') setOpen(false);\n };\n\n document.addEventListener('mousedown', handleOutsideClick);\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open]);\n\n return (\n <MenuContext.Provider value={{ close: () => setOpen(false) }}>\n <div\n className=\"atl-menu-trigger-wrapper\"\n style={{ position: 'relative', display: 'inline-block' }}\n >\n {children({ onClick: () => setOpen((v) => !v), ref: triggerRef })}\n {open && (\n <div ref={menuRef} className=\"atl-menu-panel\">\n {menu}\n </div>\n )}\n </div>\n </MenuContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"atl-menu.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/menu/atl-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useRef,\n useState,\n useEffect,\n ReactNode,\n HTMLAttributes,\n RefObject,\n} from 'react';\nimport type { AtlMenuSpec, AtlMenuItemSpec } from '../spec';\nimport './atl-menu.css';\n\ninterface MenuContextValue {\n close: () => void;\n}\n\nconst MenuContext = createContext<MenuContextValue>({ close: () => undefined });\n\n/**\n * Properties for the AtlMenu component.\n */\nexport interface AtlMenuProps\n extends HTMLAttributes<HTMLDivElement>, AtlMenuSpec {\n /**\n * The visual style variant of the menu.\n */\n variant?: 'default' | 'compact';\n /**\n * The menu items to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A menu component for displaying a list of choices.\n */\nexport function AtlMenu({\n variant = 'default',\n children,\n className,\n ...rest\n}: AtlMenuProps) {\n const classes = ['atl-menu', `variant-${variant}`, className]\n .filter(Boolean)\n .join(' ');\n return (\n <div className={classes} role=\"menu\" {...rest}>\n {children}\n </div>\n );\n}\n\n/**\n * Properties for the AtlMenuItem component.\n */\nexport interface AtlMenuItemProps\n extends HTMLAttributes<HTMLButtonElement>, AtlMenuItemSpec {\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Callback triggered when the item is selected.\n */\n onTriggered?: () => void;\n /**\n * The content of the menu item.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual item within a menu.\n */\nexport function AtlMenuItem({\n disabled = false,\n onTriggered,\n children,\n className,\n onClick,\n ...rest\n}: AtlMenuItemProps) {\n const ctx = useContext(MenuContext);\n const classes = ['atl-menu-item', disabled && 'is-disabled', className]\n .filter(Boolean)\n .join(' ');\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!disabled) {\n onTriggered?.();\n ctx.close();\n onClick?.(e);\n }\n };\n\n return (\n <button\n className={classes}\n role=\"menuitem\"\n disabled={disabled}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\n/**\n * A separator for dividing groups of menu items.\n */\nexport function AtlMenuSeparator() {\n return <hr className=\"atl-menu-separator\" />;\n}\n\n/**\n * Properties for the AtlMenuTrigger component.\n */\nexport interface AtlMenuTriggerProps {\n /**\n * The menu to be displayed.\n */\n menu: ReactNode;\n /**\n * Render prop that provides trigger functionality.\n */\n children: (props: {\n onClick: () => void;\n ref: RefObject<HTMLElement | null>;\n }) => ReactNode;\n}\n\n/**\n * A component that manages the state of a menu and its trigger.\n */\nexport function AtlMenuTrigger({ menu, children }: AtlMenuTriggerProps) {\n const [open, setOpen] = useState(false);\n const triggerRef = useRef<HTMLElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n // Menu-button ARIA on the trigger element itself (the render prop binds the\n // ref to it) — mirrors what the CDK menu trigger does in the Angular adapter,\n // so consumers get correct semantics without wiring attributes by hand.\n useEffect(() => {\n const el = triggerRef.current;\n if (!el) return;\n el.setAttribute('aria-haspopup', 'menu');\n el.setAttribute('aria-expanded', String(open));\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n !menuRef.current?.contains(e.target as Node) &&\n !triggerRef.current?.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n\n const handleKeyDown = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape') setOpen(false);\n };\n\n document.addEventListener('mousedown', handleOutsideClick);\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open]);\n\n return (\n <MenuContext.Provider value={{ close: () => setOpen(false) }}>\n <div\n className=\"atl-menu-trigger-wrapper\"\n style={{ position: 'relative', display: 'inline-block' }}\n >\n {children({ onClick: () => setOpen((v) => !v), ref: triggerRef })}\n {open && (\n <div ref={menuRef} className=\"atl-menu-panel\">\n {menu}\n </div>\n )}\n </div>\n </MenuContext.Provider>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-pagination.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/pagination/atl-pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,sBAAsB,CAAC;AAuC9B;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,EACnD,iBAAiB;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAQ,EACR,SAAa,EACb,YAAgB,EAChB,aAAoB,EACpB,YAAY,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAmGpB"}
1
+ {"version":3,"file":"atl-pagination.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/pagination/atl-pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,sBAAsB,CAAC;AA0C9B;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB;IACxE;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAQ,EACR,SAAa,EACb,YAAgB,EAChB,aAAoB,EACpB,YAAY,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAiGpB"}
@@ -38,17 +38,15 @@ export function AtlPagination({ page = 1, pageCount = 1, siblingCount = 1, showF
38
38
  onPageChange?.(clamped);
39
39
  }
40
40
  };
41
- return (_jsx("nav", { className: classes, "aria-label": "Pagination", ...rest, children: _jsxs("ul", { className: "page-list", children: [showFirstLast && (_jsx("li", { children: _jsx("button", { className: ['page-btn', page <= 1 ? 'is-disabled' : ''].filter(Boolean).join(' '), disabled: page <= 1, "aria-label": "First page", onClick: () => goTo(1), children: _jsx(AtlIcon, { name: "chevron-double-left", size: "sm" }) }) })), _jsx("li", { children: _jsx("button", { className: ['page-btn', page <= 1 ? 'is-disabled' : ''].filter(Boolean).join(' '), disabled: page <= 1, "aria-label": "Previous page", onClick: () => goTo(page - 1), children: _jsx(AtlIcon, { name: "chevron-left", size: "sm" }) }) }), pageItems.map((item, index) => item.type === 'page' ? (_jsx("li", { children: _jsx("button", { className: ['page-btn', item.page === page ? 'is-active' : '']
41
+ return (_jsx("nav", { className: classes, "aria-label": "Pagination", ...rest, children: _jsxs("ul", { className: "page-list", children: [showFirstLast && (_jsx("li", { children: _jsx("button", { className: ['page-btn', page <= 1 ? 'is-disabled' : '']
42
42
  .filter(Boolean)
43
- .join(' '), "aria-current": item.page === page ? 'page' : undefined, "aria-label": `Page ${item.page}`, onClick: () => goTo(item.page), children: item.page }) }, item.page)) : (_jsx("li", { children: _jsx("span", { className: "ellipsis", "aria-hidden": "true", children: "\u2026" }) }, item.key))), _jsx("li", { children: _jsx("button", { className: [
44
- 'page-btn',
45
- page >= pageCount ? 'is-disabled' : '',
46
- ]
43
+ .join(' '), disabled: page <= 1, "aria-label": "First page", onClick: () => goTo(1), children: _jsx(AtlIcon, { name: "chevron-double-left", size: "sm" }) }) })), _jsx("li", { children: _jsx("button", { className: ['page-btn', page <= 1 ? 'is-disabled' : '']
47
44
  .filter(Boolean)
48
- .join(' '), disabled: page >= pageCount, "aria-label": "Next page", onClick: () => goTo(page + 1), children: _jsx(AtlIcon, { name: "chevron-right", size: "sm" }) }) }), showFirstLast && (_jsx("li", { children: _jsx("button", { className: [
49
- 'page-btn',
50
- page >= pageCount ? 'is-disabled' : '',
51
- ]
45
+ .join(' '), disabled: page <= 1, "aria-label": "Previous page", onClick: () => goTo(page - 1), children: _jsx(AtlIcon, { name: "chevron-left", size: "sm" }) }) }), pageItems.map((item, index) => item.type === 'page' ? (_jsx("li", { children: _jsx("button", { className: ['page-btn', item.page === page ? 'is-active' : '']
46
+ .filter(Boolean)
47
+ .join(' '), "aria-current": item.page === page ? 'page' : undefined, "aria-label": `Page ${item.page}`, onClick: () => goTo(item.page), children: item.page }) }, item.page)) : (_jsx("li", { children: _jsx("span", { className: "ellipsis", "aria-hidden": "true", children: "\u2026" }) }, item.key))), _jsx("li", { children: _jsx("button", { className: ['page-btn', page >= pageCount ? 'is-disabled' : '']
48
+ .filter(Boolean)
49
+ .join(' '), disabled: page >= pageCount, "aria-label": "Next page", onClick: () => goTo(page + 1), children: _jsx(AtlIcon, { name: "chevron-right", size: "sm" }) }) }), showFirstLast && (_jsx("li", { children: _jsx("button", { className: ['page-btn', page >= pageCount ? 'is-disabled' : '']
52
50
  .filter(Boolean)
53
51
  .join(' '), disabled: page >= pageCount, "aria-label": "Last page", onClick: () => goTo(pageCount), children: _jsx(AtlIcon, { name: "chevron-double-right", size: "sm" }) }) }))] }) }));
54
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"atl-pagination.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/pagination/atl-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { HTMLAttributes, useMemo } from 'react';\nimport type { AtlPaginationSpec } from '../spec';\nimport './atl-pagination.css';\nimport { AtlIcon } from '../icon/atl-icon';\n\ntype PageItem =\n | { type: 'page'; page: number }\n | { type: 'ellipsis'; key: string };\n\nfunction buildPageItems(page: number, pageCount: number, siblingCount: number): PageItem[] {\n if (pageCount <= 1) return [{ type: 'page', page: 1 }];\n\n const items: PageItem[] = [];\n\n // Always include first page\n items.push({ type: 'page', page: 1 });\n\n const left = Math.max(2, page - siblingCount);\n const right = Math.min(pageCount - 1, page + siblingCount);\n\n // Left ellipsis\n if (left > 2) {\n items.push({ type: 'ellipsis', key: 'ellipsis-start' });\n }\n\n // Middle pages\n for (let p = left; p <= right; p++) {\n items.push({ type: 'page', page: p });\n }\n\n // Right ellipsis\n if (right < pageCount - 1) {\n items.push({ type: 'ellipsis', key: 'ellipsis-end' });\n }\n\n // Always include last page\n items.push({ type: 'page', page: pageCount });\n\n return items;\n}\n\n/**\n * Properties for the AtlPagination component.\n */\nexport interface AtlPaginationProps\n extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>,\n AtlPaginationSpec {\n /**\n * The currently active page.\n */\n page?: number;\n /**\n * The total number of pages.\n */\n pageCount?: number;\n /**\n * The number of pages to show on either side of the current page.\n */\n siblingCount?: number;\n /**\n * Whether to show buttons for first and last pages.\n */\n showFirstLast?: boolean;\n /**\n * Callback triggered when the page changes.\n */\n onPageChange?: (page: number) => void;\n}\n\n/**\n * A pagination component for navigating through paged content.\n */\nexport function AtlPagination({\n page = 1,\n pageCount = 1,\n siblingCount = 1,\n showFirstLast = true,\n onPageChange,\n className,\n ...rest\n}: AtlPaginationProps) {\n const classes = ['atl-pagination', className].filter(Boolean).join(' ');\n\n const pageItems = useMemo(\n () => buildPageItems(page, pageCount, siblingCount),\n [page, pageCount, siblingCount]\n );\n\n const goTo = (p: number) => {\n const clamped = Math.min(Math.max(p, 1), pageCount);\n if (clamped !== page) {\n onPageChange?.(clamped);\n }\n };\n\n return (\n <nav className={classes} aria-label=\"Pagination\" {...rest}>\n <ul className=\"page-list\">\n {showFirstLast && (\n <li>\n <button\n className={['page-btn', page <= 1 ? 'is-disabled' : ''].filter(Boolean).join(' ')}\n disabled={page <= 1}\n aria-label=\"First page\"\n onClick={() => goTo(1)}\n >\n <AtlIcon name=\"chevron-double-left\" size=\"sm\" />\n </button>\n </li>\n )}\n <li>\n <button\n className={['page-btn', page <= 1 ? 'is-disabled' : ''].filter(Boolean).join(' ')}\n disabled={page <= 1}\n aria-label=\"Previous page\"\n onClick={() => goTo(page - 1)}\n >\n <AtlIcon name=\"chevron-left\" size=\"sm\" />\n </button>\n </li>\n\n {pageItems.map((item, index) =>\n item.type === 'page' ? (\n <li key={item.page}>\n <button\n className={['page-btn', item.page === page ? 'is-active' : '']\n .filter(Boolean)\n .join(' ')}\n aria-current={item.page === page ? 'page' : undefined}\n aria-label={`Page ${item.page}`}\n onClick={() => goTo(item.page)}\n >\n {item.page}\n </button>\n </li>\n ) : (\n <li key={item.key}>\n <span className=\"ellipsis\" aria-hidden=\"true\">\n …\n </span>\n </li>\n )\n )}\n\n <li>\n <button\n className={[\n 'page-btn',\n page >= pageCount ? 'is-disabled' : '',\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={page >= pageCount}\n aria-label=\"Next page\"\n onClick={() => goTo(page + 1)}\n >\n <AtlIcon name=\"chevron-right\" size=\"sm\" />\n </button>\n </li>\n {showFirstLast && (\n <li>\n <button\n className={[\n 'page-btn',\n page >= pageCount ? 'is-disabled' : '',\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={page >= pageCount}\n aria-label=\"Last page\"\n onClick={() => goTo(pageCount)}\n >\n <AtlIcon name=\"chevron-double-right\" size=\"sm\" />\n </button>\n </li>\n )}\n </ul>\n </nav>\n );\n}\n"]}
1
+ {"version":3,"file":"atl-pagination.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/pagination/atl-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { HTMLAttributes, useMemo } from 'react';\nimport type { AtlPaginationSpec } from '../spec';\nimport './atl-pagination.css';\nimport { AtlIcon } from '../icon/atl-icon';\n\ntype PageItem =\n { type: 'page'; page: number } | { type: 'ellipsis'; key: string };\n\nfunction buildPageItems(\n page: number,\n pageCount: number,\n siblingCount: number,\n): PageItem[] {\n if (pageCount <= 1) return [{ type: 'page', page: 1 }];\n\n const items: PageItem[] = [];\n\n // Always include first page\n items.push({ type: 'page', page: 1 });\n\n const left = Math.max(2, page - siblingCount);\n const right = Math.min(pageCount - 1, page + siblingCount);\n\n // Left ellipsis\n if (left > 2) {\n items.push({ type: 'ellipsis', key: 'ellipsis-start' });\n }\n\n // Middle pages\n for (let p = left; p <= right; p++) {\n items.push({ type: 'page', page: p });\n }\n\n // Right ellipsis\n if (right < pageCount - 1) {\n items.push({ type: 'ellipsis', key: 'ellipsis-end' });\n }\n\n // Always include last page\n items.push({ type: 'page', page: pageCount });\n\n return items;\n}\n\n/**\n * Properties for the AtlPagination component.\n */\nexport interface AtlPaginationProps\n extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>, AtlPaginationSpec {\n /**\n * The currently active page.\n */\n page?: number;\n /**\n * The total number of pages.\n */\n pageCount?: number;\n /**\n * The number of pages to show on either side of the current page.\n */\n siblingCount?: number;\n /**\n * Whether to show buttons for first and last pages.\n */\n showFirstLast?: boolean;\n /**\n * Callback triggered when the page changes.\n */\n onPageChange?: (page: number) => void;\n}\n\n/**\n * A pagination component for navigating through paged content.\n */\nexport function AtlPagination({\n page = 1,\n pageCount = 1,\n siblingCount = 1,\n showFirstLast = true,\n onPageChange,\n className,\n ...rest\n}: AtlPaginationProps) {\n const classes = ['atl-pagination', className].filter(Boolean).join(' ');\n\n const pageItems = useMemo(\n () => buildPageItems(page, pageCount, siblingCount),\n [page, pageCount, siblingCount],\n );\n\n const goTo = (p: number) => {\n const clamped = Math.min(Math.max(p, 1), pageCount);\n if (clamped !== page) {\n onPageChange?.(clamped);\n }\n };\n\n return (\n <nav className={classes} aria-label=\"Pagination\" {...rest}>\n <ul className=\"page-list\">\n {showFirstLast && (\n <li>\n <button\n className={['page-btn', page <= 1 ? 'is-disabled' : '']\n .filter(Boolean)\n .join(' ')}\n disabled={page <= 1}\n aria-label=\"First page\"\n onClick={() => goTo(1)}\n >\n <AtlIcon name=\"chevron-double-left\" size=\"sm\" />\n </button>\n </li>\n )}\n <li>\n <button\n className={['page-btn', page <= 1 ? 'is-disabled' : '']\n .filter(Boolean)\n .join(' ')}\n disabled={page <= 1}\n aria-label=\"Previous page\"\n onClick={() => goTo(page - 1)}\n >\n <AtlIcon name=\"chevron-left\" size=\"sm\" />\n </button>\n </li>\n\n {pageItems.map((item, index) =>\n item.type === 'page' ? (\n <li key={item.page}>\n <button\n className={['page-btn', item.page === page ? 'is-active' : '']\n .filter(Boolean)\n .join(' ')}\n aria-current={item.page === page ? 'page' : undefined}\n aria-label={`Page ${item.page}`}\n onClick={() => goTo(item.page)}\n >\n {item.page}\n </button>\n </li>\n ) : (\n <li key={item.key}>\n <span className=\"ellipsis\" aria-hidden=\"true\">\n …\n </span>\n </li>\n ),\n )}\n\n <li>\n <button\n className={['page-btn', page >= pageCount ? 'is-disabled' : '']\n .filter(Boolean)\n .join(' ')}\n disabled={page >= pageCount}\n aria-label=\"Next page\"\n onClick={() => goTo(page + 1)}\n >\n <AtlIcon name=\"chevron-right\" size=\"sm\" />\n </button>\n </li>\n {showFirstLast && (\n <li>\n <button\n className={['page-btn', page >= pageCount ? 'is-disabled' : '']\n .filter(Boolean)\n .join(' ')}\n disabled={page >= pageCount}\n aria-label=\"Last page\"\n onClick={() => goTo(pageCount)}\n >\n <AtlIcon name=\"chevron-double-right\" size=\"sm\" />\n </button>\n </li>\n )}\n </ul>\n </nav>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-progress.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/progress/atl-progress.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,eAAe;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAS,EACT,GAAS,EACT,OAAmB,EACnB,IAAW,EACX,aAAqB,EACrB,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,+BA2BlB"}
1
+ {"version":3,"file":"atl-progress.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/progress/atl-progress.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EAAE,eAAe;IACvD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAS,EACT,GAAS,EACT,OAAmB,EACnB,IAAW,EACX,aAAqB,EACrB,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,+BA6BlB"}
@@ -12,7 +12,9 @@ export function AtlProgress({ value = 0, max = 100, variant = 'default', size =
12
12
  `size-${size}`,
13
13
  indeterminate && 'is-indeterminate',
14
14
  className,
15
- ].filter(Boolean).join(' ');
15
+ ]
16
+ .filter(Boolean)
17
+ .join(' ');
16
18
  return (_jsx("div", { className: classes, role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuenow": indeterminate ? undefined : clampedValue, "aria-valuemax": indeterminate ? undefined : max, ...rest, children: _jsx("div", { className: "track", children: _jsx("div", { className: "fill", style: { width: fillWidth } }) }) }));
17
19
  }
18
20
  //# sourceMappingURL=atl-progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"atl-progress.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/progress/atl-progress.tsx"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,CAAC;AAmC5B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,GAAG,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACU;IACjB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAE5E,MAAM,OAAO,GAAG;QACd,cAAc;QACd,WAAW,OAAO,EAAE;QACpB,QAAQ,IAAI,EAAE;QACd,aAAa,IAAI,kBAAkB;QACnC,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,CACL,cACE,SAAS,EAAE,OAAO,EAClB,IAAI,EAAC,aAAa,gBACN,KAAK,mBACF,CAAC,mBACD,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,mBACxC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAC1C,IAAI,YAER,cAAK,SAAS,EAAC,OAAO,YACpB,cAAK,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAI,GACjD,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes } from 'react';\nimport type { AtlProgressSpec } from '../spec';\nimport './atl-progress.css';\n\n/**\n * Properties for the AtlProgress component.\n */\nexport interface AtlProgressProps\n extends HTMLAttributes<HTMLDivElement>,\n AtlProgressSpec {\n /**\n * The current progress value.\n */\n value?: number;\n /**\n * The maximum progress value.\n */\n max?: number;\n /**\n * The visual style variant of the progress bar.\n */\n variant?: 'default' | 'success' | 'warning' | 'danger';\n /**\n * The size of the progress bar.\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Whether the progress bar is in an indeterminate state.\n */\n indeterminate?: boolean;\n /**\n * Accessible name for the progress bar — rendered as `aria-label`.\n * Required by ARIA when there is no visible label nearby.\n */\n label?: string;\n}\n\n/**\n * A progress bar component for displaying task progress.\n */\nexport function AtlProgress({\n value = 0,\n max = 100,\n variant = 'default',\n size = 'md',\n indeterminate = false,\n label,\n className,\n ...rest\n}: AtlProgressProps) {\n const clampedValue = Math.min(Math.max(value, 0), max);\n const fillWidth = indeterminate ? '100%' : `${(clampedValue / max) * 100}%`;\n\n const classes = [\n 'atl-progress',\n `variant-${variant}`,\n `size-${size}`,\n indeterminate && 'is-indeterminate',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n className={classes}\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedValue}\n aria-valuemax={indeterminate ? undefined : max}\n {...rest}\n >\n <div className=\"track\">\n <div className=\"fill\" style={{ width: fillWidth }} />\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"atl-progress.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/progress/atl-progress.tsx"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,CAAC;AAkC5B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,GAAG,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACU;IACjB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAE5E,MAAM,OAAO,GAAG;QACd,cAAc;QACd,WAAW,OAAO,EAAE;QACpB,QAAQ,IAAI,EAAE;QACd,aAAa,IAAI,kBAAkB;QACnC,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,cACE,SAAS,EAAE,OAAO,EAClB,IAAI,EAAC,aAAa,gBACN,KAAK,mBACF,CAAC,mBACD,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,mBACxC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAC1C,IAAI,YAER,cAAK,SAAS,EAAC,OAAO,YACpB,cAAK,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAI,GACjD,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes } from 'react';\nimport type { AtlProgressSpec } from '../spec';\nimport './atl-progress.css';\n\n/**\n * Properties for the AtlProgress component.\n */\nexport interface AtlProgressProps\n extends HTMLAttributes<HTMLDivElement>, AtlProgressSpec {\n /**\n * The current progress value.\n */\n value?: number;\n /**\n * The maximum progress value.\n */\n max?: number;\n /**\n * The visual style variant of the progress bar.\n */\n variant?: 'default' | 'success' | 'warning' | 'danger';\n /**\n * The size of the progress bar.\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Whether the progress bar is in an indeterminate state.\n */\n indeterminate?: boolean;\n /**\n * Accessible name for the progress bar — rendered as `aria-label`.\n * Required by ARIA when there is no visible label nearby.\n */\n label?: string;\n}\n\n/**\n * A progress bar component for displaying task progress.\n */\nexport function AtlProgress({\n value = 0,\n max = 100,\n variant = 'default',\n size = 'md',\n indeterminate = false,\n label,\n className,\n ...rest\n}: AtlProgressProps) {\n const clampedValue = Math.min(Math.max(value, 0), max);\n const fillWidth = indeterminate ? '100%' : `${(clampedValue / max) * 100}%`;\n\n const classes = [\n 'atl-progress',\n `variant-${variant}`,\n `size-${size}`,\n indeterminate && 'is-indeterminate',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n className={classes}\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedValue}\n aria-valuemax={indeterminate ? undefined : max}\n {...rest}\n >\n <div className=\"track\">\n <div className=\"fill\" style={{ width: fillWidth }} />\n </div>\n </div>\n );\n}\n"]}
@@ -41,10 +41,11 @@
41
41
  background-color: var(--ui-color-input-bg);
42
42
  cursor: pointer;
43
43
  position: relative;
44
- transition: border-color var(--ui-transition-fast),
45
- border-width var(--ui-transition-fast) var(--ui-ease-out),
46
- background-color var(--ui-transition-fast),
47
- box-shadow var(--ui-transition-fast);
44
+ transition:
45
+ border-color var(--ui-transition-fast),
46
+ border-width var(--ui-transition-fast) var(--ui-ease-out),
47
+ background-color var(--ui-transition-fast),
48
+ box-shadow var(--ui-transition-fast);
48
49
  outline: none;
49
50
  margin: 0;
50
51
  }
@@ -21,5 +21,5 @@ export interface AtlRadioProps extends AtlRadioSpec {
21
21
  /**
22
22
  * An individual radio button component, meant to be used within AtlRadioGroup.
23
23
  */
24
- export declare function AtlRadio({ radioValue, disabled, children }: AtlRadioProps): import("react").JSX.Element;
24
+ export declare function AtlRadio({ radioValue, disabled, children, }: AtlRadioProps): import("react").JSX.Element;
25
25
  //# sourceMappingURL=atl-radio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atl-radio.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio/atl-radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,QAAgB,EAAE,QAAQ,EAAE,EAAE,aAAa,+BAgCjF"}
1
+ {"version":3,"file":"atl-radio.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio/atl-radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,UAAU,EACV,QAAgB,EAChB,QAAQ,GACT,EAAE,aAAa,+BAkCf"}
@@ -4,7 +4,7 @@ import './atl-radio.css';
4
4
  /**
5
5
  * An individual radio button component, meant to be used within AtlRadioGroup.
6
6
  */
7
- export function AtlRadio({ radioValue, disabled = false, children }) {
7
+ export function AtlRadio({ radioValue, disabled = false, children, }) {
8
8
  const ctx = useRadioGroup();
9
9
  const isDisabled = disabled || ctx.disabled;
10
10
  const isChecked = ctx.value === radioValue;
@@ -1 +1 @@
1
- {"version":3,"file":"atl-radio.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio/atl-radio.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,iBAAiB,CAAC;AAoBzB;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAiB;IAChF,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC;IAE3C,MAAM,OAAO,GAAG;QACd,WAAW;QACX,UAAU,IAAI,aAAa;QAC3B,SAAS,IAAI,YAAY;QACzB,GAAG,CAAC,OAAO,IAAI,YAAY;KAC5B;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,iBAAO,SAAS,EAAE,OAAO,aACvB,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,EAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,UAAU;gBACpB,2EAA2E;gBAC3E,4EAA4E;gBAC5E,uEAAuE;gBACvE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,EAAE,EAClD,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EACxE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAC1B,EACD,QAAQ,IAAI,eAAM,SAAS,EAAC,YAAY,YAAE,QAAQ,GAAQ,IACrD,CACT,CAAC;AACJ,CAAC","sourcesContent":["import { ReactNode } from 'react';\nimport type { AtlRadioSpec } from '../spec';\nimport { useRadioGroup } from '../radio-group/atl-radio-group';\nimport './atl-radio.css';\n\n/**\n * Properties for the AtlRadio component.\n */\nexport interface AtlRadioProps extends AtlRadioSpec {\n /**\n * The value of the radio button.\n */\n radioValue: string;\n /**\n * Whether the radio button is disabled.\n */\n disabled?: boolean;\n /**\n * The content to be rendered as the label for the radio button.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual radio button component, meant to be used within AtlRadioGroup.\n */\nexport function AtlRadio({ radioValue, disabled = false, children }: AtlRadioProps) {\n const ctx = useRadioGroup();\n const isDisabled = disabled || ctx.disabled;\n const isChecked = ctx.value === radioValue;\n\n const classes = [\n 'atl-radio',\n isDisabled && 'is-disabled',\n isChecked && 'is-checked',\n ctx.invalid && 'is-invalid',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <label className={classes}>\n <input\n type=\"radio\"\n name={ctx.name || undefined}\n value={radioValue}\n checked={isChecked}\n disabled={isDisabled}\n // HTML ignores `readonly` on a radio, so guarding onChange stops the model\n // but not the input's own DOM state. Cancelling the click makes the browser\n // restore the previous selection (verified in chromium). See ADR-0045.\n onClick={(e) => ctx.readOnly && e.preventDefault()}\n onChange={() => !isDisabled && !ctx.readOnly && ctx.onSelect(radioValue)}\n onBlur={() => ctx.onBlur()}\n />\n {children && <span className=\"radio-text\">{children}</span>}\n </label>\n );\n}\n"]}
1
+ {"version":3,"file":"atl-radio.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio/atl-radio.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,iBAAiB,CAAC;AAoBzB;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACM;IACd,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC;IAE3C,MAAM,OAAO,GAAG;QACd,WAAW;QACX,UAAU,IAAI,aAAa;QAC3B,SAAS,IAAI,YAAY;QACzB,GAAG,CAAC,OAAO,IAAI,YAAY;KAC5B;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,iBAAO,SAAS,EAAE,OAAO,aACvB,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,EAC3B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,UAAU;gBACpB,2EAA2E;gBAC3E,4EAA4E;gBAC5E,uEAAuE;gBACvE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc,EAAE,EAClD,QAAQ,EAAE,GAAG,EAAE,CACb,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAE1D,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAC1B,EACD,QAAQ,IAAI,eAAM,SAAS,EAAC,YAAY,YAAE,QAAQ,GAAQ,IACrD,CACT,CAAC;AACJ,CAAC","sourcesContent":["import { ReactNode } from 'react';\nimport type { AtlRadioSpec } from '../spec';\nimport { useRadioGroup } from '../radio-group/atl-radio-group';\nimport './atl-radio.css';\n\n/**\n * Properties for the AtlRadio component.\n */\nexport interface AtlRadioProps extends AtlRadioSpec {\n /**\n * The value of the radio button.\n */\n radioValue: string;\n /**\n * Whether the radio button is disabled.\n */\n disabled?: boolean;\n /**\n * The content to be rendered as the label for the radio button.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual radio button component, meant to be used within AtlRadioGroup.\n */\nexport function AtlRadio({\n radioValue,\n disabled = false,\n children,\n}: AtlRadioProps) {\n const ctx = useRadioGroup();\n const isDisabled = disabled || ctx.disabled;\n const isChecked = ctx.value === radioValue;\n\n const classes = [\n 'atl-radio',\n isDisabled && 'is-disabled',\n isChecked && 'is-checked',\n ctx.invalid && 'is-invalid',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <label className={classes}>\n <input\n type=\"radio\"\n name={ctx.name || undefined}\n value={radioValue}\n checked={isChecked}\n disabled={isDisabled}\n // HTML ignores `readonly` on a radio, so guarding onChange stops the model\n // but not the input's own DOM state. Cancelling the click makes the browser\n // restore the previous selection (verified in chromium). See ADR-0045.\n onClick={(e) => ctx.readOnly && e.preventDefault()}\n onChange={() =>\n !isDisabled && !ctx.readOnly && ctx.onSelect(radioValue)\n }\n onBlur={() => ctx.onBlur()}\n />\n {children && <span className=\"radio-text\">{children}</span>}\n </label>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-radio-group.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio-group/atl-radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,mBAAmB,EACnB,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,iDAQ5B,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAC3D,iBAAiB;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAU,EACV,aAAa,EACb,WAAwB,EACxB,IAAS,EACT,QAAgB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAe,EACf,QAAgB,EAChB,MAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAsEpB;AAED,wBAAgB,aAAa,IAAI,sBAAsB,CAEtD"}
1
+ {"version":3,"file":"atl-radio-group.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio-group/atl-radio-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,mBAAmB,EACnB,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,iDAQ5B,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,kBACf,SACE,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACrD,iBAAiB;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAU,EACV,aAAa,EACb,WAAwB,EACxB,IAAS,EACT,QAAgB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAe,EACf,QAAgB,EAChB,MAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAyEpB;AAED,wBAAgB,aAAa,IAAI,sBAAsB,CAEtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-radio-group.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio-group/atl-radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useRef,\n type KeyboardEvent,\n InputHTMLAttributes,\n ReactNode,\n} from 'react';\nimport type { AtlRadioGroupSpec } from '../spec';\nimport './atl-radio-group.css';\n\n/**\n * Interface for the RadioGroup context.\n */\nexport interface RadioGroupContextValue {\n /**\n * The currently selected value.\n */\n value: string;\n /**\n * The name of the radio group.\n */\n name: string;\n /**\n * Whether the entire radio group is disabled.\n */\n disabled: boolean;\n /**\n * Whether the entire radio group is read-only.\n */\n readOnly: boolean;\n /**\n * Whether the radio group is in an invalid state.\n */\n invalid: boolean;\n /**\n * Callback to select a value.\n */\n onSelect: (value: string) => void;\n /**\n * Callback triggered on blur.\n */\n onBlur: () => void;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue>({\n value: '',\n name: '',\n disabled: false,\n readOnly: false,\n invalid: false,\n onSelect: () => undefined,\n onBlur: () => undefined,\n});\n\n/**\n * Properties for the AtlRadioGroup component.\n */\nexport interface AtlRadioGroupProps\n extends Omit<InputHTMLAttributes<HTMLDivElement>, 'onChange'>,\n AtlRadioGroupSpec {\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange?: (value: string) => void;\n /**\n * The layout orientation of the radio group.\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * The name of the radio group, applied to all child radio buttons.\n */\n name?: string;\n /**\n * Whether the radio group is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the radio group is read-only.\n */\n readOnly?: boolean;\n /**\n * Whether the radio group is in an invalid state.\n */\n invalid?: boolean;\n /**\n * Whether a value is required.\n */\n required?: boolean;\n /**\n * Array of error messages to display.\n */\n errors?: string[];\n /**\n * The radio buttons to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A group of radio buttons.\n */\nexport function AtlRadioGroup({\n value = '',\n onValueChange,\n orientation = 'vertical',\n name = '',\n disabled = false,\n readOnly: reactReadOnly,\n readonly: specReadOnly,\n invalid = false,\n required = false,\n errors = [],\n children,\n className,\n ...rest\n}: AtlRadioGroupProps) {\n const readOnly = reactReadOnly ?? specReadOnly ?? false;\n const groupRef = useRef<HTMLDivElement>(null);\n\n // Roving arrow-key navigation per the WAI-ARIA radiogroup pattern: Arrow\n // Down/Right move to the next enabled radio, Up/Left to the previous, both\n // wrapping, and the navigated radio is selected and focused.\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || readOnly) return;\n const forward = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const backward = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n if (!forward && !backward) return;\n const radios = Array.from(\n groupRef.current?.querySelectorAll<HTMLInputElement>('input[type=\"radio\"]') ?? []\n ).filter((radio) => !radio.disabled);\n if (radios.length === 0) return;\n event.preventDefault();\n const currentIdx = radios.findIndex((radio) => radio.value === value);\n const start = currentIdx === -1 ? (forward ? -1 : 0) : currentIdx;\n const nextIdx = (start + (forward ? 1 : -1) + radios.length) % radios.length;\n const target = radios[nextIdx];\n target.focus();\n onValueChange?.(target.value);\n };\n\n const classes = [\n 'atl-radio-group',\n `orientation-${orientation}`,\n invalid && 'is-invalid',\n disabled && 'is-disabled',\n readOnly && 'is-readonly',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <RadioGroupContext.Provider\n value={{\n value,\n name,\n disabled,\n readOnly,\n invalid,\n onSelect: (v) => !disabled && !readOnly && onValueChange?.(v),\n onBlur: () => undefined,\n }}\n >\n <div\n ref={groupRef}\n className={classes}\n role=\"radiogroup\"\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {children}\n {errors.length > 0 && (\n <div className=\"errors\" role=\"alert\" aria-live=\"polite\">\n {errors.map((err, i) => (\n <p key={i} className=\"error-message\">\n {err}\n </p>\n ))}\n </div>\n )}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport function useRadioGroup(): RadioGroupContextValue {\n return useContext(RadioGroupContext);\n}\n"]}
1
+ {"version":3,"file":"atl-radio-group.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/radio-group/atl-radio-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useRef,\n type KeyboardEvent,\n InputHTMLAttributes,\n ReactNode,\n} from 'react';\nimport type { AtlRadioGroupSpec } from '../spec';\nimport './atl-radio-group.css';\n\n/**\n * Interface for the RadioGroup context.\n */\nexport interface RadioGroupContextValue {\n /**\n * The currently selected value.\n */\n value: string;\n /**\n * The name of the radio group.\n */\n name: string;\n /**\n * Whether the entire radio group is disabled.\n */\n disabled: boolean;\n /**\n * Whether the entire radio group is read-only.\n */\n readOnly: boolean;\n /**\n * Whether the radio group is in an invalid state.\n */\n invalid: boolean;\n /**\n * Callback to select a value.\n */\n onSelect: (value: string) => void;\n /**\n * Callback triggered on blur.\n */\n onBlur: () => void;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue>({\n value: '',\n name: '',\n disabled: false,\n readOnly: false,\n invalid: false,\n onSelect: () => undefined,\n onBlur: () => undefined,\n});\n\n/**\n * Properties for the AtlRadioGroup component.\n */\nexport interface AtlRadioGroupProps\n extends\n Omit<InputHTMLAttributes<HTMLDivElement>, 'onChange'>,\n AtlRadioGroupSpec {\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange?: (value: string) => void;\n /**\n * The layout orientation of the radio group.\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * The name of the radio group, applied to all child radio buttons.\n */\n name?: string;\n /**\n * Whether the radio group is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the radio group is read-only.\n */\n readOnly?: boolean;\n /**\n * Whether the radio group is in an invalid state.\n */\n invalid?: boolean;\n /**\n * Whether a value is required.\n */\n required?: boolean;\n /**\n * Array of error messages to display.\n */\n errors?: string[];\n /**\n * The radio buttons to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A group of radio buttons.\n */\nexport function AtlRadioGroup({\n value = '',\n onValueChange,\n orientation = 'vertical',\n name = '',\n disabled = false,\n readOnly: reactReadOnly,\n readonly: specReadOnly,\n invalid = false,\n required = false,\n errors = [],\n children,\n className,\n ...rest\n}: AtlRadioGroupProps) {\n const readOnly = reactReadOnly ?? specReadOnly ?? false;\n const groupRef = useRef<HTMLDivElement>(null);\n\n // Roving arrow-key navigation per the WAI-ARIA radiogroup pattern: Arrow\n // Down/Right move to the next enabled radio, Up/Left to the previous, both\n // wrapping, and the navigated radio is selected and focused.\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || readOnly) return;\n const forward = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n const backward = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n if (!forward && !backward) return;\n const radios = Array.from(\n groupRef.current?.querySelectorAll<HTMLInputElement>(\n 'input[type=\"radio\"]',\n ) ?? [],\n ).filter((radio) => !radio.disabled);\n if (radios.length === 0) return;\n event.preventDefault();\n const currentIdx = radios.findIndex((radio) => radio.value === value);\n const start = currentIdx === -1 ? (forward ? -1 : 0) : currentIdx;\n const nextIdx =\n (start + (forward ? 1 : -1) + radios.length) % radios.length;\n const target = radios[nextIdx];\n target.focus();\n onValueChange?.(target.value);\n };\n\n const classes = [\n 'atl-radio-group',\n `orientation-${orientation}`,\n invalid && 'is-invalid',\n disabled && 'is-disabled',\n readOnly && 'is-readonly',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <RadioGroupContext.Provider\n value={{\n value,\n name,\n disabled,\n readOnly,\n invalid,\n onSelect: (v) => !disabled && !readOnly && onValueChange?.(v),\n onBlur: () => undefined,\n }}\n >\n <div\n ref={groupRef}\n className={classes}\n role=\"radiogroup\"\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {children}\n {errors.length > 0 && (\n <div className=\"errors\" role=\"alert\" aria-live=\"polite\">\n {errors.map((err, i) => (\n <p key={i} className=\"error-message\">\n {err}\n </p>\n ))}\n </div>\n )}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport function useRadioGroup(): RadioGroupContextValue {\n return useContext(RadioGroupContext);\n}\n"]}
@@ -46,9 +46,13 @@
46
46
  * defect only appeared in CI. See ADR-0048. */
47
47
  line-height: var(--ui-line-height-tight);
48
48
  padding: calc(
49
- (var(--ui-control-height-md) - var(--ui-line-height-tight) * var(--ui-font-size-md)) / 2 -
50
- var(--ui-border-width)
51
- ) var(--ui-spacing-4);
49
+ (
50
+ var(--ui-control-height-md) - var(--ui-line-height-tight) *
51
+ var(--ui-font-size-md)
52
+ ) /
53
+ 2 - var(--ui-border-width)
54
+ )
55
+ var(--ui-spacing-4);
52
56
  padding-inline-end: calc(var(--ui-spacing-4) + 1.25rem + var(--ui-spacing-5));
53
57
  background: var(--ui-color-input-bg);
54
58
  border: var(--ui-border-width) solid var(--ui-color-input-border);
@@ -1 +1 @@
1
- {"version":3,"file":"atl-select.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/select/atl-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAS,MAAM,OAAO,CAAC;AACrF,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,kBAAkB,CAAC;AAG1B;;GAEG;AACH,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EACzE,aAAa;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAU,EACV,aAAa,EACb,WAAW,EACX,OAAe,EACf,MAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACR,EAAE,cAAc,+BAuDhB;AAED;;GAEG;AACH,MAAM,WAAW,cACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,aAAa;IACf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAM3E"}
1
+ {"version":3,"file":"atl-select.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/select/atl-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,kBAAkB,CAAC;AAG1B;;GAEG;AACH,MAAM,WAAW,cACf,SACE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,EACnE,aAAa;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAU,EACV,aAAa,EACb,WAAW,EACX,OAAe,EACf,MAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACR,EAAE,cAAc,+BAyDhB;AAED;;GAEG;AACH,MAAM,WAAW,cACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,aAAa;IAC9D;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,+BAM3E"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useId } from 'react';
2
+ import { useId, } from 'react';
3
3
  import './atl-select.css';
4
4
  import { AtlIcon } from '../icon/atl-icon';
5
5
  /**
@@ -22,7 +22,7 @@ export function AtlSelect({ value = '', onValueChange, placeholder, invalid = fa
22
22
  ]
23
23
  .filter(Boolean)
24
24
  .join(' ');
25
- return (_jsxs("div", { className: classes, children: [label && _jsx("label", { htmlFor: selectId, children: label }), _jsxs("div", { className: "select-wrapper", children: [_jsxs("select", { id: selectId, value: value, onChange: (e) => onValueChange?.(e.target.value), disabled: disabled, required: required, "aria-invalid": invalid || undefined, "aria-describedby": errors.length > 0 ? errorsId : undefined, ...rest, children: [placeholder && (_jsx("option", { value: "", disabled: true, hidden: true, children: placeholder })), children] }), invalid && _jsx(AtlIcon, { name: "danger", size: "sm", className: "invalid-icon" }), _jsx("span", { className: "select-arrow", "aria-hidden": "true", children: _jsx(AtlIcon, { name: "chevron-down", size: "sm" }) })] }), errors.length > 0 && (_jsx("div", { className: "errors", id: errorsId, "aria-live": "polite", children: errors.map((err, i) => (_jsx("p", { className: "error-message", children: err }, i))) }))] }));
25
+ return (_jsxs("div", { className: classes, children: [label && _jsx("label", { htmlFor: selectId, children: label }), _jsxs("div", { className: "select-wrapper", children: [_jsxs("select", { id: selectId, value: value, onChange: (e) => onValueChange?.(e.target.value), disabled: disabled, required: required, "aria-invalid": invalid || undefined, "aria-describedby": errors.length > 0 ? errorsId : undefined, ...rest, children: [placeholder && (_jsx("option", { value: "", disabled: true, hidden: true, children: placeholder })), children] }), invalid && (_jsx(AtlIcon, { name: "danger", size: "sm", className: "invalid-icon" })), _jsx("span", { className: "select-arrow", "aria-hidden": "true", children: _jsx(AtlIcon, { name: "chevron-down", size: "sm" }) })] }), errors.length > 0 && (_jsx("div", { className: "errors", id: errorsId, "aria-live": "polite", children: errors.map((err, i) => (_jsx("p", { className: "error-message", children: err }, i))) }))] }));
26
26
  }
27
27
  /**
28
28
  * An individual option component for use within AtlSelect.
@@ -1 +1 @@
1
- {"version":3,"file":"atl-select.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/select/atl-select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAyD,KAAK,EAAE,MAAM,OAAO,CAAC;AAKrF,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAkC3C;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,GAAG,EAAE,EACV,aAAa,EACb,WAAW,EACX,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACQ;IACf,wEAAwE;IACxE,wEAAwE;IACxE,2CAA2C;IAC3C,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,iFAAiF;IACjF,gDAAgD;IAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG;QACd,YAAY;QACZ,OAAO,IAAI,YAAY;QACvB,QAAQ,IAAI,aAAa;QACzB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,aACpB,KAAK,IAAI,gBAAO,OAAO,EAAE,QAAQ,YAAG,KAAK,GAAS,EACnD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,kBACE,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,kBACJ,OAAO,IAAI,SAAS,sBAChB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KACtD,IAAI,aAEP,WAAW,IAAI,CACd,iBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,QAAC,MAAM,kBAC7B,WAAW,GACL,CACV,EACA,QAAQ,IACF,EACR,OAAO,IAAI,KAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,cAAc,GAAG,EACxE,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,YAC/C,KAAC,OAAO,IAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,IAAI,GAAG,GACpC,IACH,EACL,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,eAAY,QAAQ,YACrD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,YAAW,SAAS,EAAC,eAAe,YACjC,GAAG,IADE,CAAC,CAEL,CACL,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAkBD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAkB;IAC1E,OAAO,CACL,iBAAQ,KAAK,EAAE,WAAW,KAAM,IAAI,YACjC,QAAQ,GACF,CACV,CAAC;AACJ,CAAC","sourcesContent":["import { ReactNode, SelectHTMLAttributes, OptionHTMLAttributes, useId } from 'react';\nimport type {\n AtlSelectSpec,\n AtlOptionSpec,\n} from '../spec';\nimport './atl-select.css';\nimport { AtlIcon } from '../icon/atl-icon';\n\n/**\n * Properties for the AtlSelect component.\n */\nexport interface AtlSelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'value' | 'onChange'>,\n AtlSelectSpec {\n /**\n * The current value of the select.\n */\n value?: string;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange?: (value: string) => void;\n /**\n * Placeholder text to display when no value is selected.\n */\n placeholder?: string;\n /**\n * Whether the select is in an invalid state.\n */\n invalid?: boolean;\n /**\n * Array of error messages to display.\n */\n errors?: string[];\n /**\n * The label for the select.\n */\n label?: string;\n}\n\n/**\n * A select component for choosing an option from a list.\n */\nexport function AtlSelect({\n value = '',\n onValueChange,\n placeholder,\n invalid = false,\n errors = [],\n disabled = false,\n required = false,\n label,\n children,\n className,\n id,\n ...rest\n}: AtlSelectProps) {\n // useId(), not a slug derived from the label text: two selects with the\n // same label used to collide on one id and break the for/id association\n // (same bug as AtlInput's — see ADR-0091).\n const generatedId = useId();\n const selectId = id || (label ? `select-${generatedId}` : undefined);\n // Derived from the field id, the same way AtlInput derives its own, so the error\n // text can be pointed at with aria-describedby.\n const errorsId = selectId ? `${selectId}-errors` : undefined;\n const classes = [\n 'atl-select',\n invalid && 'is-invalid',\n disabled && 'is-disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={classes}>\n {label && <label htmlFor={selectId}>{label}</label>}\n <div className=\"select-wrapper\">\n <select\n id={selectId}\n value={value}\n onChange={(e) => onValueChange?.(e.target.value)}\n disabled={disabled}\n required={required}\n aria-invalid={invalid || undefined}\n aria-describedby={errors.length > 0 ? errorsId : undefined}\n {...rest}\n >\n {placeholder && (\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n )}\n {children}\n </select>\n {invalid && <AtlIcon name=\"danger\" size=\"sm\" className=\"invalid-icon\" />}\n <span className=\"select-arrow\" aria-hidden=\"true\">\n <AtlIcon name=\"chevron-down\" size=\"sm\" />\n </span>\n </div>\n {errors.length > 0 && (\n <div className=\"errors\" id={errorsId} aria-live=\"polite\">\n {errors.map((err, i) => (\n <p key={i} className=\"error-message\">\n {err}\n </p>\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Properties for the AtlOption component.\n */\nexport interface AtlOptionProps\n extends OptionHTMLAttributes<HTMLOptionElement>,\n AtlOptionSpec {\n /**\n * The value of the option.\n */\n optionValue: string;\n /**\n * The content to be rendered inside the option.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual option component for use within AtlSelect.\n */\nexport function AtlOption({ optionValue, children, ...rest }: AtlOptionProps) {\n return (\n <option value={optionValue} {...rest}>\n {children}\n </option>\n );\n}\n"]}
1
+ {"version":3,"file":"atl-select.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/select/atl-select.tsx"],"names":[],"mappings":";AAAA,OAAO,EAIL,KAAK,GACN,MAAM,OAAO,CAAC;AAEf,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAmC3C;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,GAAG,EAAE,EACV,aAAa,EACb,WAAW,EACX,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACQ;IACf,wEAAwE;IACxE,wEAAwE;IACxE,2CAA2C;IAC3C,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,iFAAiF;IACjF,gDAAgD;IAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG;QACd,YAAY;QACZ,OAAO,IAAI,YAAY;QACvB,QAAQ,IAAI,aAAa;QACzB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,aACpB,KAAK,IAAI,gBAAO,OAAO,EAAE,QAAQ,YAAG,KAAK,GAAS,EACnD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,kBACE,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,kBACJ,OAAO,IAAI,SAAS,sBAChB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KACtD,IAAI,aAEP,WAAW,IAAI,CACd,iBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,QAAC,MAAM,kBAC7B,WAAW,GACL,CACV,EACA,QAAQ,IACF,EACR,OAAO,IAAI,CACV,KAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,cAAc,GAAG,CAC7D,EACD,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,YAC/C,KAAC,OAAO,IAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,IAAI,GAAG,GACpC,IACH,EACL,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,QAAQ,eAAY,QAAQ,YACrD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,YAAW,SAAS,EAAC,eAAe,YACjC,GAAG,IADE,CAAC,CAEL,CACL,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAiBD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAkB;IAC1E,OAAO,CACL,iBAAQ,KAAK,EAAE,WAAW,KAAM,IAAI,YACjC,QAAQ,GACF,CACV,CAAC;AACJ,CAAC","sourcesContent":["import {\n ReactNode,\n SelectHTMLAttributes,\n OptionHTMLAttributes,\n useId,\n} from 'react';\nimport type { AtlSelectSpec, AtlOptionSpec } from '../spec';\nimport './atl-select.css';\nimport { AtlIcon } from '../icon/atl-icon';\n\n/**\n * Properties for the AtlSelect component.\n */\nexport interface AtlSelectProps\n extends\n Omit<SelectHTMLAttributes<HTMLSelectElement>, 'value' | 'onChange'>,\n AtlSelectSpec {\n /**\n * The current value of the select.\n */\n value?: string;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange?: (value: string) => void;\n /**\n * Placeholder text to display when no value is selected.\n */\n placeholder?: string;\n /**\n * Whether the select is in an invalid state.\n */\n invalid?: boolean;\n /**\n * Array of error messages to display.\n */\n errors?: string[];\n /**\n * The label for the select.\n */\n label?: string;\n}\n\n/**\n * A select component for choosing an option from a list.\n */\nexport function AtlSelect({\n value = '',\n onValueChange,\n placeholder,\n invalid = false,\n errors = [],\n disabled = false,\n required = false,\n label,\n children,\n className,\n id,\n ...rest\n}: AtlSelectProps) {\n // useId(), not a slug derived from the label text: two selects with the\n // same label used to collide on one id and break the for/id association\n // (same bug as AtlInput's — see ADR-0091).\n const generatedId = useId();\n const selectId = id || (label ? `select-${generatedId}` : undefined);\n // Derived from the field id, the same way AtlInput derives its own, so the error\n // text can be pointed at with aria-describedby.\n const errorsId = selectId ? `${selectId}-errors` : undefined;\n const classes = [\n 'atl-select',\n invalid && 'is-invalid',\n disabled && 'is-disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={classes}>\n {label && <label htmlFor={selectId}>{label}</label>}\n <div className=\"select-wrapper\">\n <select\n id={selectId}\n value={value}\n onChange={(e) => onValueChange?.(e.target.value)}\n disabled={disabled}\n required={required}\n aria-invalid={invalid || undefined}\n aria-describedby={errors.length > 0 ? errorsId : undefined}\n {...rest}\n >\n {placeholder && (\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n )}\n {children}\n </select>\n {invalid && (\n <AtlIcon name=\"danger\" size=\"sm\" className=\"invalid-icon\" />\n )}\n <span className=\"select-arrow\" aria-hidden=\"true\">\n <AtlIcon name=\"chevron-down\" size=\"sm\" />\n </span>\n </div>\n {errors.length > 0 && (\n <div className=\"errors\" id={errorsId} aria-live=\"polite\">\n {errors.map((err, i) => (\n <p key={i} className=\"error-message\">\n {err}\n </p>\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Properties for the AtlOption component.\n */\nexport interface AtlOptionProps\n extends OptionHTMLAttributes<HTMLOptionElement>, AtlOptionSpec {\n /**\n * The value of the option.\n */\n optionValue: string;\n /**\n * The content to be rendered inside the option.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual option component for use within AtlSelect.\n */\nexport function AtlOption({ optionValue, children, ...rest }: AtlOptionProps) {\n return (\n <option value={optionValue} {...rest}>\n {children}\n </option>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-skeleton.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/skeleton/atl-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,eAAe;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAC9C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAgB,EAChB,KAAc,EACd,MAAM,EACN,QAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAMlB"}
1
+ {"version":3,"file":"atl-skeleton.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/skeleton/atl-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EAAE,eAAe;IACvD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAC9C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAgB,EAChB,KAAc,EACd,MAAM,EACN,QAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAkBlB"}
@@ -18,10 +18,20 @@ function computeHeight(variant, width, height) {
18
18
  * A placeholder component used to represent content while it's loading.
19
19
  */
20
20
  export function AtlSkeleton({ variant = 'text', width = '100%', height, animated = true, className, style, ...rest }) {
21
- const classes = ['atl-skeleton', `variant-${variant}`, animated && 'is-animated', className]
22
- .filter(Boolean).join(' ');
21
+ const classes = [
22
+ 'atl-skeleton',
23
+ `variant-${variant}`,
24
+ animated && 'is-animated',
25
+ className,
26
+ ]
27
+ .filter(Boolean)
28
+ .join(' ');
23
29
  const computedHeight = computeHeight(variant, width, height);
24
- const inlineStyle = { ...style, width, height: computedHeight };
25
- return _jsx("div", { className: classes, style: inlineStyle, "aria-hidden": "true", ...rest });
30
+ const inlineStyle = {
31
+ ...style,
32
+ width,
33
+ height: computedHeight,
34
+ };
35
+ return (_jsx("div", { className: classes, style: inlineStyle, "aria-hidden": "true", ...rest }));
26
36
  }
27
37
  //# sourceMappingURL=atl-skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"atl-skeleton.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/skeleton/atl-skeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,CAAC;AA0B5B,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAe;IACpE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,MAAM,EACd,MAAM,EACN,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACU;IACjB,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,WAAW,OAAO,EAAE,EAAE,QAAQ,IAAI,aAAa,EAAE,SAAS,CAAC;SACzF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAkB,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC/E,OAAO,cAAK,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,iBAAc,MAAM,KAAK,IAAI,GAAI,CAAC;AACtF,CAAC","sourcesContent":["import { CSSProperties, HTMLAttributes } from 'react';\nimport type { AtlSkeletonSpec } from '../spec';\nimport './atl-skeleton.css';\n\n/**\n * Properties for the AtlSkeleton component.\n */\nexport interface AtlSkeletonProps\n extends HTMLAttributes<HTMLDivElement>,\n AtlSkeletonSpec {\n /**\n * The visual style variant of the skeleton.\n */\n variant?: 'text' | 'circular' | 'rectangular';\n /**\n * The width of the skeleton.\n */\n width?: string;\n /**\n * The height of the skeleton.\n */\n height?: string;\n /**\n * Whether the skeleton should be animated.\n */\n animated?: boolean;\n}\n\nfunction computeHeight(variant: string, width: string, height?: string): string {\n if (height) return height;\n switch (variant) {\n case 'text':\n return '1em';\n case 'circular':\n return width;\n case 'rectangular':\n return '100px';\n default:\n return '1em';\n }\n}\n\n/**\n * A placeholder component used to represent content while it's loading.\n */\nexport function AtlSkeleton({\n variant = 'text',\n width = '100%',\n height,\n animated = true,\n className,\n style,\n ...rest\n}: AtlSkeletonProps) {\n const classes = ['atl-skeleton', `variant-${variant}`, animated && 'is-animated', className]\n .filter(Boolean).join(' ');\n const computedHeight = computeHeight(variant, width, height);\n const inlineStyle: CSSProperties = { ...style, width, height: computedHeight };\n return <div className={classes} style={inlineStyle} aria-hidden=\"true\" {...rest} />;\n}\n"]}
1
+ {"version":3,"file":"atl-skeleton.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/skeleton/atl-skeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,CAAC;AAyB5B,SAAS,aAAa,CACpB,OAAe,EACf,KAAa,EACb,MAAe;IAEf,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,MAAM,EACd,MAAM,EACN,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACU;IACjB,MAAM,OAAO,GAAG;QACd,cAAc;QACd,WAAW,OAAO,EAAE;QACpB,QAAQ,IAAI,aAAa;QACzB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAkB;QACjC,GAAG,KAAK;QACR,KAAK;QACL,MAAM,EAAE,cAAc;KACvB,CAAC;IACF,OAAO,CACL,cAAK,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,iBAAc,MAAM,KAAK,IAAI,GAAI,CAC7E,CAAC;AACJ,CAAC","sourcesContent":["import { CSSProperties, HTMLAttributes } from 'react';\nimport type { AtlSkeletonSpec } from '../spec';\nimport './atl-skeleton.css';\n\n/**\n * Properties for the AtlSkeleton component.\n */\nexport interface AtlSkeletonProps\n extends HTMLAttributes<HTMLDivElement>, AtlSkeletonSpec {\n /**\n * The visual style variant of the skeleton.\n */\n variant?: 'text' | 'circular' | 'rectangular';\n /**\n * The width of the skeleton.\n */\n width?: string;\n /**\n * The height of the skeleton.\n */\n height?: string;\n /**\n * Whether the skeleton should be animated.\n */\n animated?: boolean;\n}\n\nfunction computeHeight(\n variant: string,\n width: string,\n height?: string,\n): string {\n if (height) return height;\n switch (variant) {\n case 'text':\n return '1em';\n case 'circular':\n return width;\n case 'rectangular':\n return '100px';\n default:\n return '1em';\n }\n}\n\n/**\n * A placeholder component used to represent content while it's loading.\n */\nexport function AtlSkeleton({\n variant = 'text',\n width = '100%',\n height,\n animated = true,\n className,\n style,\n ...rest\n}: AtlSkeletonProps) {\n const classes = [\n 'atl-skeleton',\n `variant-${variant}`,\n animated && 'is-animated',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n const computedHeight = computeHeight(variant, width, height);\n const inlineStyle: CSSProperties = {\n ...style,\n width,\n height: computedHeight,\n };\n return (\n <div className={classes} style={inlineStyle} aria-hidden=\"true\" {...rest} />\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../../libs/react/src/lib/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../../libs/react/src/lib/spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../../libs/react/src/lib/spec.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,4EAA4E;AAC5E,qEAAqE","sourcesContent":["// AUTO-GENERATED from libs/spec/src/index.ts — do not edit here.\n// Run `node tools/scripts/sync-spec.mjs` after editing the source of truth.\n// The framework libs inline this so @atelier-ui/spec stays internal.\n\n/**\n * @atelier-ui/spec\n *\n * Framework-agnostic TypeScript interfaces defining the public API contract\n * for every Atelier component. Both the Angular and React libraries\n * import from here so the compiler enforces parity.\n *\n * Angular: use the union types as `input<T>()` type parameters.\n * React: extend the spec interface from the framework-specific props interface.\n */\n\n// ---------------------------------------------------------------------------\n// Button\n// ---------------------------------------------------------------------------\nexport type AtlButtonVariant = 'primary' | 'secondary' | 'outline' | 'danger';\nexport type AtlButtonSize = 'sm' | 'md' | 'lg';\nexport interface AtlButtonSpec {\n variant?: AtlButtonVariant;\n size?: AtlButtonSize;\n disabled?: boolean;\n loading?: boolean;\n /**\n * Accessible name — rendered as `aria-label`. Required when the\n * button has no visible text label (icon-only buttons), otherwise\n * the button is unnamed for assistive tech. The React adapter\n * encodes this requirement at the type level via a discriminated\n * union; the Angular and Vue adapters log a dev-mode warning when\n * a rendered button has no accessible name.\n */\n 'aria-label'?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Badge\n// ---------------------------------------------------------------------------\nexport type AtlBadgeVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\nexport type AtlBadgeSize = 'sm' | 'md';\nexport interface AtlBadgeSpec {\n variant?: AtlBadgeVariant;\n size?: AtlBadgeSize;\n}\n\n// ---------------------------------------------------------------------------\n// Avatar / AvatarGroup\n// ---------------------------------------------------------------------------\nexport type AtlAvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type AtlAvatarShape = 'circle' | 'square';\nexport type AtlAvatarStatus = 'online' | 'offline' | 'away' | 'busy' | '';\nexport interface AtlAvatarSpec {\n src?: string;\n alt?: string;\n name?: string;\n size?: AtlAvatarSize;\n shape?: AtlAvatarShape;\n status?: AtlAvatarStatus;\n}\nexport interface AtlAvatarGroupSpec {\n max?: number;\n size?: AtlAvatarSize;\n}\n\n// ---------------------------------------------------------------------------\n// Card\n// ---------------------------------------------------------------------------\nexport type AtlCardVariant = 'elevated' | 'outlined' | 'flat';\nexport type AtlCardPadding = 'none' | 'sm' | 'md' | 'lg';\n/**\n * Optional landmark role for the card. Default behaviour is a plain\n * `<div>` — most cards group content visually and shouldn't add a\n * landmark to the page outline.\n *\n * Pick a role only when the card is meaningful as a landmark:\n * - `'article'` for self-contained pieces of content (a blog post,\n * a comment, a forum entry) that make sense out of context.\n * - `'region'` for a perceivable area that needs a screen-reader\n * stop. Pair with `aria-label` or `aria-labelledby`.\n * - `'section'` is not a landmark by itself — equivalent to a\n * `<section>` element. Useful when nesting structure matters.\n */\nexport type AtlCardRole = 'article' | 'region' | 'section';\nexport interface AtlCardSpec {\n variant?: AtlCardVariant;\n padding?: AtlCardPadding;\n /**\n * Opt-in landmark role. Default is no role (plain `<div>`).\n * See {@link AtlCardRole} for when to use each value.\n */\n role?: AtlCardRole;\n}\n\n// ---------------------------------------------------------------------------\n// Input / Textarea (shared form field props)\n// ---------------------------------------------------------------------------\n// `any` is intentional here: downstream form-field interfaces narrow `value`\n// to the concrete primitive they accept (string, number, boolean, Date, …).\n// Using `unknown` would force every downstream consumer to redeclare the\n// property, defeating the purpose of the shared spec.\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface AtlFormFieldSpec {\n value?: any;\n onValueChange?: (value: any) => void;\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n name?: string;\n}\n\n/**\n * `readonly` — the value is shown and submitted, but the user cannot change it.\n *\n * Deliberately NOT part of `AtlFormFieldSpec`. It used to be, and the four choice\n * controls that inherited it could not keep the promise: HTML ignores `readonly`\n * on `<input type=\"checkbox\">` and `<input type=\"radio\">`, and\n * `HTMLSelectElement` has no `readOnly` property at all — measured, the user\n * still flipped the control and `onCheckedChange` still fired. A prop that\n * silently does nothing is worse than an absent one, so this mixin is applied\n * only where the state is actually enforced: natively by the text fields, and by\n * an explicit guard in AtlCombobox and AtlRadioGroup. See ADR-0045.\n */\nexport interface AtlReadonlySpec {\n readonly?: boolean;\n}\n\n/**\n * Visible caption rendered as a `<label>` associated with the control via\n * `for`/`id`. When omitted, the control renders with no visible caption —\n * supply an external `<label>` or an `aria-label` at the call site in that\n * case, or the control has no accessible name.\n *\n * Deliberately NOT merged into `AtlFormFieldSpec`. Two of that mixin's\n * consumers project their caption as CONTENT rather than a string prop —\n * `AtlCheckboxSpec`/`AtlToggleSpec` take it as `children`/`<ng-content>`/\n * `<slot>` — so inheriting `label` there would be a second, unused, and\n * actively misleading way to say the same thing. Two more,\n * `AtlRadioGroupSpec` and `AtlComboboxSpec`, have no caption prop in any\n * adapter today, so applying it there would be speculative. Applied only\n * where a `label` prop actually exists in at least one adapter today —\n * `AtlInputSpec`, `AtlTextareaSpec`, `AtlSelectSpec` — three occurrences,\n * which is what justifies pulling it out as its own mixin instead of leaving\n * it three separate, easy-to-let-drift declarations (see ADR-0091, which\n * also documents the one-off reading this mixin corrects).\n */\nexport interface AtlCaptionSpec {\n label?: string;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport type AtlInputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';\nexport interface AtlInputSpec extends AtlFormFieldSpec, AtlReadonlySpec, AtlCaptionSpec {\n type?: AtlInputType;\n placeholder?: string;\n}\n\nexport interface AtlTextareaSpec extends AtlFormFieldSpec, AtlReadonlySpec, AtlCaptionSpec {\n rows?: number;\n placeholder?: string;\n autoResize?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Checkbox / Toggle\n// ---------------------------------------------------------------------------\n// Checkbox/Toggle are checked-based, not value-based, so they omit the\n// inherited `value`/`onValueChange` — their state is `checked`/`onCheckedChange`.\n// (Input/Textarea/RadioGroup/Select/Combobox keep the value-based pair.)\nexport interface AtlCheckboxSpec extends Omit<AtlFormFieldSpec, 'value' | 'onValueChange'> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n indeterminate?: boolean;\n}\n\nexport interface AtlToggleSpec extends Omit<AtlFormFieldSpec, 'value' | 'onValueChange'> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\n// ---------------------------------------------------------------------------\n// Radio / RadioGroup\n// ---------------------------------------------------------------------------\nexport interface AtlRadioSpec {\n radioValue: string;\n disabled?: boolean;\n}\n\nexport interface AtlRadioGroupSpec extends AtlFormFieldSpec, AtlReadonlySpec {\n value?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Select / Option\n// ---------------------------------------------------------------------------\nexport interface AtlSelectSpec extends AtlFormFieldSpec, AtlCaptionSpec {\n placeholder?: string;\n}\n\nexport interface AtlOptionSpec {\n optionValue: string;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Stepper\n// ---------------------------------------------------------------------------\nexport interface AtlStepperSpec {\n activeStep?: number;\n orientation?: 'horizontal' | 'vertical';\n linear?: boolean;\n}\n\nexport interface AtlStepSpec {\n label: string;\n description?: string;\n completed?: boolean;\n error?: boolean;\n optional?: boolean;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Combobox\n// ---------------------------------------------------------------------------\nexport interface AtlComboboxOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface AtlComboboxSpec extends AtlFormFieldSpec, AtlReadonlySpec {\n options?: AtlComboboxOption[];\n placeholder?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Alert\n// ---------------------------------------------------------------------------\nexport type AtlAlertVariant = 'info' | 'success' | 'warning' | 'danger';\nexport interface AtlAlertSpec {\n variant?: AtlAlertVariant;\n dismissible?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Dialog\n// ---------------------------------------------------------------------------\nexport type AtlDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport interface AtlDialogSpec {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n closeOnBackdrop?: boolean;\n size?: AtlDialogSize;\n}\n\n// ---------------------------------------------------------------------------\n// TabGroup / Tab\n// ---------------------------------------------------------------------------\nexport type AtlTabGroupVariant = 'default' | 'pills';\nexport interface AtlTabGroupSpec {\n selectedIndex?: number;\n onSelectedIndexChange?: (index: number) => void;\n variant?: AtlTabGroupVariant;\n}\n\nexport interface AtlTabSpec {\n label: string;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// AccordionGroup / AccordionItem\n// ---------------------------------------------------------------------------\nexport type AtlAccordionGroupVariant = 'default' | 'bordered' | 'separated';\nexport interface AtlAccordionGroupSpec {\n multi?: boolean;\n variant?: AtlAccordionGroupVariant;\n}\n\nexport type AtlAccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\nexport interface AtlAccordionItemSpec {\n expanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n disabled?: boolean;\n /**\n * HTML heading level wrapping the trigger button. Default `3`.\n * Set this to match your page's heading outline so the\n * accordion's section titles don't break heading order.\n * Example: if the accordion is nested under an `<h2>`, pass\n * `headingLevel={3}` (default); if nested under an `<h3>`, pass\n * `headingLevel={4}`.\n */\n headingLevel?: AtlAccordionHeadingLevel;\n}\n\n// ---------------------------------------------------------------------------\n// Menu / MenuItem\n// ---------------------------------------------------------------------------\nexport type AtlMenuVariant = 'default' | 'compact';\nexport interface AtlMenuSpec {\n variant?: AtlMenuVariant;\n}\n\nexport interface AtlMenuItemSpec {\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Tooltip\n// ---------------------------------------------------------------------------\nexport type AtlTooltipPosition = 'above' | 'below' | 'left' | 'right';\nexport interface AtlTooltipSpec {\n atlTooltip: string;\n atlTooltipPosition?: AtlTooltipPosition;\n atlTooltipDisabled?: boolean;\n atlTooltipShowDelay?: number;\n atlTooltipHideDelay?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Toast\n// ---------------------------------------------------------------------------\nexport type AtlToastVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\nexport type AtlToastContainerPosition =\n | 'top-right'\n | 'top-center'\n | 'bottom-right'\n | 'bottom-center';\nexport interface AtlToastOptions {\n variant?: AtlToastVariant;\n duration?: number;\n dismissible?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Skeleton\n// ---------------------------------------------------------------------------\nexport type AtlSkeletonVariant = 'text' | 'circular' | 'rectangular';\nexport interface AtlSkeletonSpec {\n variant?: AtlSkeletonVariant;\n width?: string;\n height?: string;\n animated?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Breadcrumbs / BreadcrumbItem\n// ---------------------------------------------------------------------------\nexport interface AtlBreadcrumbsSpec {\n separator?: string;\n}\n\nexport interface AtlBreadcrumbItemSpec {\n href?: string;\n current?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Pagination\n// ---------------------------------------------------------------------------\nexport interface AtlPaginationSpec {\n page?: number;\n pageCount?: number;\n siblingCount?: number;\n showFirstLast?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Progress\n// ---------------------------------------------------------------------------\nexport type AtlProgressVariant = 'default' | 'success' | 'warning' | 'danger';\nexport type AtlProgressSize = 'sm' | 'md' | 'lg';\nexport interface AtlProgressSpec {\n value?: number;\n max?: number;\n variant?: AtlProgressVariant;\n size?: AtlProgressSize;\n indeterminate?: boolean;\n /**\n * Accessible name for the progress bar — rendered as `aria-label`.\n * Required by ARIA when there is no visible label nearby; without it\n * screen readers announce only \"progress bar 47%\". Examples:\n * `\"Upload progress\"`, `\"Form completion\"`, `\"Quota usage\"`.\n */\n label?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Drawer\n// ---------------------------------------------------------------------------\nexport type AtlDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type AtlDrawerSize = 'sm' | 'md' | 'lg' | 'full';\nexport interface AtlDrawerSpec {\n open?: boolean;\n position?: AtlDrawerPosition;\n size?: AtlDrawerSize;\n closeOnBackdrop?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Table\n// ---------------------------------------------------------------------------\nexport type AtlTableVariant = 'default' | 'striped' | 'bordered';\nexport type AtlTableSize = 'sm' | 'md' | 'lg';\nexport type AtlSortDirection = 'asc' | 'desc' | null;\nexport type AtlTableAlign = 'start' | 'center' | 'end';\n\nexport interface AtlTableSpec {\n variant?: AtlTableVariant;\n size?: AtlTableSize;\n stickyHeader?: boolean;\n /**\n * Accessible name for the scrollable table region. The wrapper\n * around the `<table>` is keyboard-focusable (tabindex=0) so that\n * users can scroll horizontally; this label is what screen readers\n * announce when focus enters the region. Defaults to `\"Table\"`.\n */\n 'aria-label'?: string;\n}\n\nexport interface AtlTbodySpec {\n empty?: boolean;\n colSpan?: number;\n}\n\nexport interface AtlTrSpec {\n selected?: boolean;\n selectable?: boolean;\n rowId?: string;\n}\n\nexport interface AtlThSpec {\n sortable?: boolean;\n sortDirection?: AtlSortDirection;\n align?: AtlTableAlign;\n width?: string;\n}\n\nexport interface AtlTdSpec {\n align?: AtlTableAlign;\n}\n\n// ---------------------------------------------------------------------------\n// Icon\n// ---------------------------------------------------------------------------\nexport type AtlIconName =\n | 'success'\n | 'check'\n | 'warning'\n | 'danger'\n | 'info'\n | 'error'\n | 'chevron-up'\n | 'chevron-down'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevron-double-left'\n | 'chevron-double-right'\n | 'sort-asc'\n | 'sort-desc'\n | 'arrow-right'\n | 'arrow-left'\n | 'copy'\n | 'paste'\n | 'add'\n | 'edit'\n | 'delete'\n | 'close'\n | 'more'\n | 'person'\n | 'default-toast';\nexport type AtlIconSize = 'sm' | 'md' | 'lg';\nexport interface AtlIconSpec {\n name: AtlIconName;\n size?: AtlIconSize;\n /**\n * Accessible label. When provided, the icon is announced as an image with\n * this label. When omitted, the icon is hidden from assistive tech (treated\n * as decorative).\n */\n label?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Chat (AI surface)\n// ---------------------------------------------------------------------------\nexport type AtlChatVariant = 'drawer' | 'popup' | 'inline';\nexport type AtlChatStatus = 'idle' | 'streaming' | 'error';\nexport type AtlChatMessageRole = 'user' | 'assistant' | 'system';\n\nexport interface AtlChatMessageSpec {\n id: string;\n role: AtlChatMessageRole;\n content: string;\n failed?: boolean;\n}\n\nexport interface AtlChatSuggestionSpec {\n id: string;\n label: string;\n hint?: string;\n}\n\nexport interface AtlChatSpec {\n variant?: AtlChatVariant;\n status?: AtlChatStatus;\n open?: boolean;\n}\n"]}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../../../libs/react/src/lib/spec.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,4EAA4E;AAC5E,qEAAqE","sourcesContent":["// AUTO-GENERATED from libs/spec/src/index.ts — do not edit here.\n// Run `node tools/scripts/sync-spec.mjs` after editing the source of truth.\n// The framework libs inline this so @atelier-ui/spec stays internal.\n\n/**\n * @atelier-ui/spec\n *\n * Framework-agnostic TypeScript interfaces defining the public API contract\n * for every Atelier component. Both the Angular and React libraries\n * import from here so the compiler enforces parity.\n *\n * Angular: use the union types as `input<T>()` type parameters.\n * React: extend the spec interface from the framework-specific props interface.\n */\n\n// ---------------------------------------------------------------------------\n// Button\n// ---------------------------------------------------------------------------\nexport type AtlButtonVariant = 'primary' | 'secondary' | 'outline' | 'danger';\nexport type AtlButtonSize = 'sm' | 'md' | 'lg';\nexport interface AtlButtonSpec {\n variant?: AtlButtonVariant;\n size?: AtlButtonSize;\n disabled?: boolean;\n loading?: boolean;\n /**\n * Accessible name — rendered as `aria-label`. Required when the\n * button has no visible text label (icon-only buttons), otherwise\n * the button is unnamed for assistive tech. The React adapter\n * encodes this requirement at the type level via a discriminated\n * union; the Angular and Vue adapters log a dev-mode warning when\n * a rendered button has no accessible name.\n */\n 'aria-label'?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Badge\n// ---------------------------------------------------------------------------\nexport type AtlBadgeVariant =\n 'default' | 'success' | 'warning' | 'danger' | 'info';\nexport type AtlBadgeSize = 'sm' | 'md';\nexport interface AtlBadgeSpec {\n variant?: AtlBadgeVariant;\n size?: AtlBadgeSize;\n}\n\n// ---------------------------------------------------------------------------\n// Avatar / AvatarGroup\n// ---------------------------------------------------------------------------\nexport type AtlAvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type AtlAvatarShape = 'circle' | 'square';\nexport type AtlAvatarStatus = 'online' | 'offline' | 'away' | 'busy' | '';\nexport interface AtlAvatarSpec {\n src?: string;\n alt?: string;\n name?: string;\n size?: AtlAvatarSize;\n shape?: AtlAvatarShape;\n status?: AtlAvatarStatus;\n}\nexport interface AtlAvatarGroupSpec {\n max?: number;\n size?: AtlAvatarSize;\n}\n\n// ---------------------------------------------------------------------------\n// Card\n// ---------------------------------------------------------------------------\nexport type AtlCardVariant = 'elevated' | 'outlined' | 'flat';\nexport type AtlCardPadding = 'none' | 'sm' | 'md' | 'lg';\n/**\n * Optional landmark role for the card. Default behaviour is a plain\n * `<div>` — most cards group content visually and shouldn't add a\n * landmark to the page outline.\n *\n * Pick a role only when the card is meaningful as a landmark:\n * - `'article'` for self-contained pieces of content (a blog post,\n * a comment, a forum entry) that make sense out of context.\n * - `'region'` for a perceivable area that needs a screen-reader\n * stop. Pair with `aria-label` or `aria-labelledby`.\n * - `'section'` is not a landmark by itself — equivalent to a\n * `<section>` element. Useful when nesting structure matters.\n */\nexport type AtlCardRole = 'article' | 'region' | 'section';\nexport interface AtlCardSpec {\n variant?: AtlCardVariant;\n padding?: AtlCardPadding;\n /**\n * Opt-in landmark role. Default is no role (plain `<div>`).\n * See {@link AtlCardRole} for when to use each value.\n */\n role?: AtlCardRole;\n}\n\n// ---------------------------------------------------------------------------\n// Input / Textarea (shared form field props)\n// ---------------------------------------------------------------------------\n// `any` is intentional here: downstream form-field interfaces narrow `value`\n// to the concrete primitive they accept (string, number, boolean, Date, …).\n// Using `unknown` would force every downstream consumer to redeclare the\n// property, defeating the purpose of the shared spec.\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface AtlFormFieldSpec {\n value?: any;\n onValueChange?: (value: any) => void;\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n name?: string;\n}\n\n/**\n * `readonly` — the value is shown and submitted, but the user cannot change it.\n *\n * Deliberately NOT part of `AtlFormFieldSpec`. It used to be, and the four choice\n * controls that inherited it could not keep the promise: HTML ignores `readonly`\n * on `<input type=\"checkbox\">` and `<input type=\"radio\">`, and\n * `HTMLSelectElement` has no `readOnly` property at all — measured, the user\n * still flipped the control and `onCheckedChange` still fired. A prop that\n * silently does nothing is worse than an absent one, so this mixin is applied\n * only where the state is actually enforced: natively by the text fields, and by\n * an explicit guard in AtlCombobox and AtlRadioGroup. See ADR-0045.\n */\nexport interface AtlReadonlySpec {\n readonly?: boolean;\n}\n\n/**\n * Visible caption rendered as a `<label>` associated with the control via\n * `for`/`id`. When omitted, the control renders with no visible caption —\n * supply an external `<label>` or an `aria-label` at the call site in that\n * case, or the control has no accessible name.\n *\n * Deliberately NOT merged into `AtlFormFieldSpec`. Two of that mixin's\n * consumers project their caption as CONTENT rather than a string prop —\n * `AtlCheckboxSpec`/`AtlToggleSpec` take it as `children`/`<ng-content>`/\n * `<slot>` — so inheriting `label` there would be a second, unused, and\n * actively misleading way to say the same thing. Two more,\n * `AtlRadioGroupSpec` and `AtlComboboxSpec`, have no caption prop in any\n * adapter today, so applying it there would be speculative. Applied only\n * where a `label` prop actually exists in at least one adapter today —\n * `AtlInputSpec`, `AtlTextareaSpec`, `AtlSelectSpec` — three occurrences,\n * which is what justifies pulling it out as its own mixin instead of leaving\n * it three separate, easy-to-let-drift declarations (see ADR-0091, which\n * also documents the one-off reading this mixin corrects).\n */\nexport interface AtlCaptionSpec {\n label?: string;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport type AtlInputType =\n 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';\nexport interface AtlInputSpec\n extends AtlFormFieldSpec, AtlReadonlySpec, AtlCaptionSpec {\n type?: AtlInputType;\n placeholder?: string;\n}\n\nexport interface AtlTextareaSpec\n extends AtlFormFieldSpec, AtlReadonlySpec, AtlCaptionSpec {\n rows?: number;\n placeholder?: string;\n autoResize?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Checkbox / Toggle\n// ---------------------------------------------------------------------------\n// Checkbox/Toggle are checked-based, not value-based, so they omit the\n// inherited `value`/`onValueChange` — their state is `checked`/`onCheckedChange`.\n// (Input/Textarea/RadioGroup/Select/Combobox keep the value-based pair.)\nexport interface AtlCheckboxSpec extends Omit<\n AtlFormFieldSpec,\n 'value' | 'onValueChange'\n> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n indeterminate?: boolean;\n}\n\nexport interface AtlToggleSpec extends Omit<\n AtlFormFieldSpec,\n 'value' | 'onValueChange'\n> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\n// ---------------------------------------------------------------------------\n// Radio / RadioGroup\n// ---------------------------------------------------------------------------\nexport interface AtlRadioSpec {\n radioValue: string;\n disabled?: boolean;\n}\n\nexport interface AtlRadioGroupSpec extends AtlFormFieldSpec, AtlReadonlySpec {\n value?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Select / Option\n// ---------------------------------------------------------------------------\nexport interface AtlSelectSpec extends AtlFormFieldSpec, AtlCaptionSpec {\n placeholder?: string;\n}\n\nexport interface AtlOptionSpec {\n optionValue: string;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Stepper\n// ---------------------------------------------------------------------------\nexport interface AtlStepperSpec {\n activeStep?: number;\n orientation?: 'horizontal' | 'vertical';\n linear?: boolean;\n}\n\nexport interface AtlStepSpec {\n label: string;\n description?: string;\n completed?: boolean;\n error?: boolean;\n optional?: boolean;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Combobox\n// ---------------------------------------------------------------------------\nexport interface AtlComboboxOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface AtlComboboxSpec extends AtlFormFieldSpec, AtlReadonlySpec {\n options?: AtlComboboxOption[];\n placeholder?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Alert\n// ---------------------------------------------------------------------------\nexport type AtlAlertVariant = 'info' | 'success' | 'warning' | 'danger';\nexport interface AtlAlertSpec {\n variant?: AtlAlertVariant;\n dismissible?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Dialog\n// ---------------------------------------------------------------------------\nexport type AtlDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport interface AtlDialogSpec {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n closeOnBackdrop?: boolean;\n size?: AtlDialogSize;\n}\n\n// ---------------------------------------------------------------------------\n// TabGroup / Tab\n// ---------------------------------------------------------------------------\nexport type AtlTabGroupVariant = 'default' | 'pills';\nexport interface AtlTabGroupSpec {\n selectedIndex?: number;\n onSelectedIndexChange?: (index: number) => void;\n variant?: AtlTabGroupVariant;\n}\n\nexport interface AtlTabSpec {\n label: string;\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// AccordionGroup / AccordionItem\n// ---------------------------------------------------------------------------\nexport type AtlAccordionGroupVariant = 'default' | 'bordered' | 'separated';\nexport interface AtlAccordionGroupSpec {\n multi?: boolean;\n variant?: AtlAccordionGroupVariant;\n}\n\nexport type AtlAccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\nexport interface AtlAccordionItemSpec {\n expanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n disabled?: boolean;\n /**\n * HTML heading level wrapping the trigger button. Default `3`.\n * Set this to match your page's heading outline so the\n * accordion's section titles don't break heading order.\n * Example: if the accordion is nested under an `<h2>`, pass\n * `headingLevel={3}` (default); if nested under an `<h3>`, pass\n * `headingLevel={4}`.\n */\n headingLevel?: AtlAccordionHeadingLevel;\n}\n\n// ---------------------------------------------------------------------------\n// Menu / MenuItem\n// ---------------------------------------------------------------------------\nexport type AtlMenuVariant = 'default' | 'compact';\nexport interface AtlMenuSpec {\n variant?: AtlMenuVariant;\n}\n\nexport interface AtlMenuItemSpec {\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Tooltip\n// ---------------------------------------------------------------------------\nexport type AtlTooltipPosition = 'above' | 'below' | 'left' | 'right';\nexport interface AtlTooltipSpec {\n atlTooltip: string;\n atlTooltipPosition?: AtlTooltipPosition;\n atlTooltipDisabled?: boolean;\n atlTooltipShowDelay?: number;\n atlTooltipHideDelay?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Toast\n// ---------------------------------------------------------------------------\nexport type AtlToastVariant =\n 'default' | 'success' | 'warning' | 'danger' | 'info';\nexport type AtlToastContainerPosition =\n 'top-right' | 'top-center' | 'bottom-right' | 'bottom-center';\nexport interface AtlToastOptions {\n variant?: AtlToastVariant;\n duration?: number;\n dismissible?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Skeleton\n// ---------------------------------------------------------------------------\nexport type AtlSkeletonVariant = 'text' | 'circular' | 'rectangular';\nexport interface AtlSkeletonSpec {\n variant?: AtlSkeletonVariant;\n width?: string;\n height?: string;\n animated?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Breadcrumbs / BreadcrumbItem\n// ---------------------------------------------------------------------------\nexport interface AtlBreadcrumbsSpec {\n separator?: string;\n}\n\nexport interface AtlBreadcrumbItemSpec {\n href?: string;\n current?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Pagination\n// ---------------------------------------------------------------------------\nexport interface AtlPaginationSpec {\n page?: number;\n pageCount?: number;\n siblingCount?: number;\n showFirstLast?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Progress\n// ---------------------------------------------------------------------------\nexport type AtlProgressVariant = 'default' | 'success' | 'warning' | 'danger';\nexport type AtlProgressSize = 'sm' | 'md' | 'lg';\nexport interface AtlProgressSpec {\n value?: number;\n max?: number;\n variant?: AtlProgressVariant;\n size?: AtlProgressSize;\n indeterminate?: boolean;\n /**\n * Accessible name for the progress bar — rendered as `aria-label`.\n * Required by ARIA when there is no visible label nearby; without it\n * screen readers announce only \"progress bar 47%\". Examples:\n * `\"Upload progress\"`, `\"Form completion\"`, `\"Quota usage\"`.\n */\n label?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Drawer\n// ---------------------------------------------------------------------------\nexport type AtlDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type AtlDrawerSize = 'sm' | 'md' | 'lg' | 'full';\nexport interface AtlDrawerSpec {\n open?: boolean;\n position?: AtlDrawerPosition;\n size?: AtlDrawerSize;\n closeOnBackdrop?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Table\n// ---------------------------------------------------------------------------\nexport type AtlTableVariant = 'default' | 'striped' | 'bordered';\nexport type AtlTableSize = 'sm' | 'md' | 'lg';\nexport type AtlSortDirection = 'asc' | 'desc' | null;\nexport type AtlTableAlign = 'start' | 'center' | 'end';\n\nexport interface AtlTableSpec {\n variant?: AtlTableVariant;\n size?: AtlTableSize;\n stickyHeader?: boolean;\n /**\n * Accessible name for the scrollable table region. The wrapper\n * around the `<table>` is keyboard-focusable (tabindex=0) so that\n * users can scroll horizontally; this label is what screen readers\n * announce when focus enters the region. Defaults to `\"Table\"`.\n */\n 'aria-label'?: string;\n}\n\nexport interface AtlTbodySpec {\n empty?: boolean;\n colSpan?: number;\n}\n\nexport interface AtlTrSpec {\n selected?: boolean;\n selectable?: boolean;\n rowId?: string;\n}\n\nexport interface AtlThSpec {\n sortable?: boolean;\n sortDirection?: AtlSortDirection;\n align?: AtlTableAlign;\n width?: string;\n}\n\nexport interface AtlTdSpec {\n align?: AtlTableAlign;\n}\n\n// ---------------------------------------------------------------------------\n// Icon\n// ---------------------------------------------------------------------------\nexport type AtlIconName =\n | 'success'\n | 'check'\n | 'warning'\n | 'danger'\n | 'info'\n | 'error'\n | 'chevron-up'\n | 'chevron-down'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevron-double-left'\n | 'chevron-double-right'\n | 'sort-asc'\n | 'sort-desc'\n | 'arrow-right'\n | 'arrow-left'\n | 'copy'\n | 'paste'\n | 'add'\n | 'edit'\n | 'delete'\n | 'close'\n | 'more'\n | 'person'\n | 'default-toast';\nexport type AtlIconSize = 'sm' | 'md' | 'lg';\nexport interface AtlIconSpec {\n name: AtlIconName;\n size?: AtlIconSize;\n /**\n * Accessible label. When provided, the icon is announced as an image with\n * this label. When omitted, the icon is hidden from assistive tech (treated\n * as decorative).\n */\n label?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Chat (AI surface)\n// ---------------------------------------------------------------------------\nexport type AtlChatVariant = 'drawer' | 'popup' | 'inline';\nexport type AtlChatStatus = 'idle' | 'streaming' | 'error';\nexport type AtlChatMessageRole = 'user' | 'assistant' | 'system';\n\nexport interface AtlChatMessageSpec {\n id: string;\n role: AtlChatMessageRole;\n content: string;\n failed?: boolean;\n}\n\nexport interface AtlChatSuggestionSpec {\n id: string;\n label: string;\n hint?: string;\n}\n\nexport interface AtlChatSpec {\n variant?: AtlChatVariant;\n status?: AtlChatStatus;\n open?: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"atl-stepper.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/stepper/atl-stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACT,cAAc,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,mBAAmB,CAAC;AAG3B,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAYD,0DAA0D;AAC1D,wBAAgB,aAAa,wBAE5B;AAED,MAAM,WAAW,eACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,cAAc;IAChB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,0BAA0B;IAC1B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EAAE,YAAY,EACxB,kBAAkB,EAClB,WAA0B,EAC1B,MAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,eAAe,+BAwJjB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,aAEjD;yBAFe,OAAO"}
1
+ {"version":3,"file":"atl-stepper.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/stepper/atl-stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACT,cAAc,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,mBAAmB,CAAC;AAG3B,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAYD,0DAA0D;AAC1D,wBAAgB,aAAa,wBAE5B;AAED,MAAM,WAAW,eACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc;IACtD,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,0BAA0B;IAC1B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EAAE,YAAY,EACxB,kBAAkB,EAClB,WAA0B,EAC1B,MAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,eAAe,+BAmKjB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,aAEjD;yBAFe,OAAO"}