vector-prototype-components 0.1.1 → 0.1.3

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 (218) hide show
  1. package/Accordion/Accordion.js +79 -0
  2. package/Accordion/Accordion.js.map +1 -0
  3. package/Accordion/Accordion.module.css +1 -0
  4. package/Accordion/Accordion.module.css.js +36 -0
  5. package/Accordion/Accordion.module.css.js.map +1 -0
  6. package/ActionMenu/ActionMenu.js +49 -0
  7. package/ActionMenu/ActionMenu.js.map +1 -0
  8. package/ActionMenu/ActionMenu.module.css +1 -0
  9. package/ActionMenu/ActionMenu.module.css.js +16 -0
  10. package/ActionMenu/ActionMenu.module.css.js.map +1 -0
  11. package/Autocomplete/Autocomplete.js +226 -0
  12. package/Autocomplete/Autocomplete.js.map +1 -0
  13. package/Autocomplete/Autocomplete.module.css +1 -0
  14. package/Autocomplete/Autocomplete.module.css.js +46 -0
  15. package/Autocomplete/Autocomplete.module.css.js.map +1 -0
  16. package/Avatar/Avatar.js +66 -0
  17. package/Avatar/Avatar.js.map +1 -0
  18. package/Avatar/Avatar.module.css +1 -0
  19. package/Avatar/Avatar.module.css.js +26 -0
  20. package/Avatar/Avatar.module.css.js.map +1 -0
  21. package/Badge/Badge.js +40 -0
  22. package/Badge/Badge.js.map +1 -0
  23. package/Badge/Badge.module.css +1 -0
  24. package/Badge/Badge.module.css.js +24 -0
  25. package/Badge/Badge.module.css.js.map +1 -0
  26. package/BottomBar/BottomBar.js +19 -0
  27. package/BottomBar/BottomBar.js.map +1 -0
  28. package/BottomBar/BottomBar.module.css +1 -0
  29. package/BottomBar/BottomBar.module.css.js +10 -0
  30. package/BottomBar/BottomBar.module.css.js.map +1 -0
  31. package/Breadcrumbs/Breadcrumbs.js +40 -0
  32. package/Breadcrumbs/Breadcrumbs.js.map +1 -0
  33. package/Breadcrumbs/Breadcrumbs.module.css +1 -0
  34. package/Breadcrumbs/Breadcrumbs.module.css.js +18 -0
  35. package/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
  36. package/Button/Button.js +53 -0
  37. package/Button/Button.js.map +1 -0
  38. package/Button/Button.module.css +1 -0
  39. package/Button/Button.module.css.js +24 -0
  40. package/Button/Button.module.css.js.map +1 -0
  41. package/Callout/Callout.js +66 -0
  42. package/Callout/Callout.js.map +1 -0
  43. package/Callout/Callout.module.css +1 -0
  44. package/Callout/Callout.module.css.js +28 -0
  45. package/Callout/Callout.module.css.js.map +1 -0
  46. package/Card/Card.js +39 -0
  47. package/Card/Card.js.map +1 -0
  48. package/Card/Card.module.css +1 -0
  49. package/Card/Card.module.css.js +18 -0
  50. package/Card/Card.module.css.js.map +1 -0
  51. package/Checkbox/Checkbox.js +90 -0
  52. package/Checkbox/Checkbox.js.map +1 -0
  53. package/Checkbox/Checkbox.module.css +1 -0
  54. package/Checkbox/Checkbox.module.css.js +22 -0
  55. package/Checkbox/Checkbox.module.css.js.map +1 -0
  56. package/Chip/Chip.js +62 -0
  57. package/Chip/Chip.js.map +1 -0
  58. package/Chip/Chip.module.css +1 -0
  59. package/Chip/Chip.module.css.js +24 -0
  60. package/Chip/Chip.module.css.js.map +1 -0
  61. package/DatePicker/DatePicker.js +157 -0
  62. package/DatePicker/DatePicker.js.map +1 -0
  63. package/DatePicker/DatePicker.module.css +1 -0
  64. package/DatePicker/DatePicker.module.css.js +48 -0
  65. package/DatePicker/DatePicker.module.css.js.map +1 -0
  66. package/DatePicker/DatePickerCalendar.js +94 -0
  67. package/DatePicker/DatePickerCalendar.js.map +1 -0
  68. package/DatePicker/DatePickerCalendar.module.css +1 -0
  69. package/DatePicker/DatePickerCalendar.module.css.js +32 -0
  70. package/DatePicker/DatePickerCalendar.module.css.js.map +1 -0
  71. package/Divider/Divider.js +22 -0
  72. package/Divider/Divider.js.map +1 -0
  73. package/Divider/Divider.module.css +1 -0
  74. package/Divider/Divider.module.css.js +12 -0
  75. package/Divider/Divider.module.css.js.map +1 -0
  76. package/Dropdown/Dropdown.js +100 -0
  77. package/Dropdown/Dropdown.js.map +1 -0
  78. package/Dropdown/Dropdown.module.css +1 -0
  79. package/Dropdown/Dropdown.module.css.js +20 -0
  80. package/Dropdown/Dropdown.module.css.js.map +1 -0
  81. package/Icon/Icon.js +8 -0
  82. package/Icon/Icon.js.map +1 -0
  83. package/IconButton/IconButton.js +42 -0
  84. package/IconButton/IconButton.js.map +1 -0
  85. package/IconButton/IconButton.module.css +1 -0
  86. package/IconButton/IconButton.module.css.js +20 -0
  87. package/IconButton/IconButton.module.css.js.map +1 -0
  88. package/InputNumber/InputNumber.js +106 -0
  89. package/InputNumber/InputNumber.js.map +1 -0
  90. package/InputNumber/InputNumber.module.css +1 -0
  91. package/InputNumber/InputNumber.module.css.js +30 -0
  92. package/InputNumber/InputNumber.module.css.js.map +1 -0
  93. package/Menu/Menu.js +182 -0
  94. package/Menu/Menu.js.map +1 -0
  95. package/Menu/Menu.module.css +1 -0
  96. package/Menu/Menu.module.css.js +56 -0
  97. package/Menu/Menu.module.css.js.map +1 -0
  98. package/Menu/menuData.js +188 -0
  99. package/Menu/menuData.js.map +1 -0
  100. package/Message/Message.js +88 -0
  101. package/Message/Message.js.map +1 -0
  102. package/Message/Message.module.css +1 -0
  103. package/Message/Message.module.css.js +32 -0
  104. package/Message/Message.module.css.js.map +1 -0
  105. package/Modal/Modal.js +186 -0
  106. package/Modal/Modal.js.map +1 -0
  107. package/Modal/Modal.module.css +1 -0
  108. package/Modal/Modal.module.css.js +44 -0
  109. package/Modal/Modal.module.css.js.map +1 -0
  110. package/Multiselect/Multiselect.js +249 -0
  111. package/Multiselect/Multiselect.js.map +1 -0
  112. package/Multiselect/Multiselect.module.css +1 -0
  113. package/Multiselect/Multiselect.module.css.js +64 -0
  114. package/Multiselect/Multiselect.module.css.js.map +1 -0
  115. package/Overlay/Overlay.js +18 -0
  116. package/Overlay/Overlay.js.map +1 -0
  117. package/Overlay/Overlay.module.css +1 -0
  118. package/Overlay/Overlay.module.css.js +8 -0
  119. package/Overlay/Overlay.module.css.js.map +1 -0
  120. package/Paginator/Paginator.js +118 -0
  121. package/Paginator/Paginator.js.map +1 -0
  122. package/Paginator/Paginator.module.css +1 -0
  123. package/Paginator/Paginator.module.css.js +22 -0
  124. package/Paginator/Paginator.module.css.js.map +1 -0
  125. package/Panel/Panel.js +38 -0
  126. package/Panel/Panel.js.map +1 -0
  127. package/Panel/Panel.module.css +1 -0
  128. package/Panel/Panel.module.css.js +16 -0
  129. package/Panel/Panel.module.css.js.map +1 -0
  130. package/ProgressSpinner/ProgressSpinner.js +64 -0
  131. package/ProgressSpinner/ProgressSpinner.js.map +1 -0
  132. package/ProgressSpinner/ProgressSpinner.module.css +1 -0
  133. package/ProgressSpinner/ProgressSpinner.module.css.js +16 -0
  134. package/ProgressSpinner/ProgressSpinner.module.css.js.map +1 -0
  135. package/Radio/Radio.js +44 -0
  136. package/Radio/Radio.js.map +1 -0
  137. package/Radio/Radio.module.css +1 -0
  138. package/Radio/Radio.module.css.js +18 -0
  139. package/Radio/Radio.module.css.js.map +1 -0
  140. package/SegmentControl/SegmentControl.js +74 -0
  141. package/SegmentControl/SegmentControl.js.map +1 -0
  142. package/SegmentControl/SegmentControl.module.css +1 -0
  143. package/SegmentControl/SegmentControl.module.css.js +16 -0
  144. package/SegmentControl/SegmentControl.module.css.js.map +1 -0
  145. package/Select/Select.js +153 -0
  146. package/Select/Select.js.map +1 -0
  147. package/Select/Select.module.css +1 -0
  148. package/Select/Select.module.css.js +46 -0
  149. package/Select/Select.module.css.js.map +1 -0
  150. package/Skeleton/Skeleton.js +78 -0
  151. package/Skeleton/Skeleton.js.map +1 -0
  152. package/Skeleton/Skeleton.module.css +1 -0
  153. package/Skeleton/Skeleton.module.css.js +18 -0
  154. package/Skeleton/Skeleton.module.css.js.map +1 -0
  155. package/Slider/Slider.js +116 -0
  156. package/Slider/Slider.js.map +1 -0
  157. package/Slider/Slider.module.css +1 -0
  158. package/Slider/Slider.module.css.js +24 -0
  159. package/Slider/Slider.module.css.js.map +1 -0
  160. package/Slot/Slot.js +25 -0
  161. package/Slot/Slot.js.map +1 -0
  162. package/Slot/Slot.module.css +1 -0
  163. package/Slot/Slot.module.css.js +16 -0
  164. package/Slot/Slot.module.css.js.map +1 -0
  165. package/Switch/Switch.js +42 -0
  166. package/Switch/Switch.js.map +1 -0
  167. package/Switch/Switch.module.css +1 -0
  168. package/Switch/Switch.module.css.js +11 -0
  169. package/Switch/Switch.module.css.js.map +1 -0
  170. package/Table/Table.js +268 -0
  171. package/Table/Table.js.map +1 -0
  172. package/Table/Table.module.css +1 -0
  173. package/Table/Table.module.css.js +64 -0
  174. package/Table/Table.module.css.js.map +1 -0
  175. package/TableTree/TableTree.js +139 -0
  176. package/TableTree/TableTree.js.map +1 -0
  177. package/TableTree/TableTree.module.css +1 -0
  178. package/TableTree/TableTree.module.css.js +62 -0
  179. package/TableTree/TableTree.module.css.js.map +1 -0
  180. package/Tabs/Tabs.js +92 -0
  181. package/Tabs/Tabs.js.map +1 -0
  182. package/Tabs/Tabs.module.css +1 -0
  183. package/Tabs/Tabs.module.css.js +18 -0
  184. package/Tabs/Tabs.module.css.js.map +1 -0
  185. package/Tag/Tag.js +48 -0
  186. package/Tag/Tag.js.map +1 -0
  187. package/Tag/Tag.module.css +1 -0
  188. package/Tag/Tag.module.css.js +30 -0
  189. package/Tag/Tag.module.css.js.map +1 -0
  190. package/TextField/TextField.js +93 -0
  191. package/TextField/TextField.js.map +1 -0
  192. package/TextField/TextField.module.css +1 -0
  193. package/TextField/TextField.module.css.js +36 -0
  194. package/TextField/TextField.module.css.js.map +1 -0
  195. package/Textarea/Textarea.js +52 -0
  196. package/Textarea/Textarea.js.map +1 -0
  197. package/Textarea/Textarea.module.css +1 -0
  198. package/Textarea/Textarea.module.css.js +32 -0
  199. package/Textarea/Textarea.module.css.js.map +1 -0
  200. package/Toast/Toast.js +82 -0
  201. package/Toast/Toast.js.map +1 -0
  202. package/Toast/Toast.module.css +1 -0
  203. package/Toast/Toast.module.css.js +28 -0
  204. package/Toast/Toast.module.css.js.map +1 -0
  205. package/Tooltip/Tooltip.js +61 -0
  206. package/Tooltip/Tooltip.js.map +1 -0
  207. package/Tooltip/Tooltip.module.css +1 -0
  208. package/Tooltip/Tooltip.module.css.js +26 -0
  209. package/Tooltip/Tooltip.module.css.js.map +1 -0
  210. package/TopBar/TopBar.js +87 -0
  211. package/TopBar/TopBar.js.map +1 -0
  212. package/TopBar/TopBar.module.css +1 -0
  213. package/TopBar/TopBar.module.css.js +30 -0
  214. package/TopBar/TopBar.module.css.js.map +1 -0
  215. package/index.js +90 -4157
  216. package/index.js.map +1 -1
  217. package/package.json +3 -4
  218. package/style.css +0 -1
@@ -0,0 +1,26 @@
1
+ import './Avatar.module.css';const i = "_avatar_155i1_20", s = "_disabled_155i1_43", e = "_sizeXsmall_155i1_50", a = "_sizeSmall_155i1_56", _ = "_sizeMedium_155i1_62", l = "_sizeLarge_155i1_68", t = "_sizeXlarge_155i1_74", n = "_image_155i1_82", o = "_initials_155i1_95", z = "_icon_155i1_103", c = {
2
+ avatar: i,
3
+ disabled: s,
4
+ sizeXsmall: e,
5
+ sizeSmall: a,
6
+ sizeMedium: _,
7
+ sizeLarge: l,
8
+ sizeXlarge: t,
9
+ image: n,
10
+ initials: o,
11
+ icon: z
12
+ };
13
+ export {
14
+ i as avatar,
15
+ c as default,
16
+ s as disabled,
17
+ z as icon,
18
+ n as image,
19
+ o as initials,
20
+ l as sizeLarge,
21
+ _ as sizeMedium,
22
+ a as sizeSmall,
23
+ t as sizeXlarge,
24
+ e as sizeXsmall
25
+ };
26
+ //# sourceMappingURL=Avatar.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
package/Badge/Badge.js ADDED
@@ -0,0 +1,40 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import e from "./Badge.module.css.js";
3
+ const m = {
4
+ small: e.sizeSmall,
5
+ medium: e.sizeMedium,
6
+ large: e.sizeLarge
7
+ }, u = {
8
+ default: e.stateDefault,
9
+ danger: e.stateDanger,
10
+ success: e.stateSuccess,
11
+ warning: e.stateWarning,
12
+ disabled: e.stateDisabled
13
+ };
14
+ function g({
15
+ state: l = "default",
16
+ size: a = "medium",
17
+ label: s,
18
+ className: t,
19
+ "aria-label": n
20
+ }) {
21
+ const r = [
22
+ e.badge,
23
+ m[a],
24
+ u[l],
25
+ t
26
+ ].filter(Boolean).join(" "), i = a !== "small" && s != null;
27
+ return /* @__PURE__ */ o(
28
+ "span",
29
+ {
30
+ className: r,
31
+ "aria-label": n,
32
+ role: "status",
33
+ children: i ? s : null
34
+ }
35
+ );
36
+ }
37
+ export {
38
+ g as Badge
39
+ };
40
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../src/Badge/Badge.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './Badge.module.css';\n\nexport type BadgeSize = 'small' | 'medium' | 'large';\nexport type BadgeState = 'default' | 'danger' | 'success' | 'warning' | 'disabled';\n\nexport interface BadgeProps {\n /** Visual state / semantic color of the badge */\n state?: BadgeState;\n /** Size of the badge. \"small\" renders a dot only (no text). */\n size?: BadgeSize;\n /**\n * Numeric or short text label shown inside medium/large badges.\n * Ignored when size=\"small\".\n */\n label?: string | number;\n /** Additional CSS class names */\n className?: string;\n /** aria-label for accessibility when no surrounding text provides context */\n 'aria-label'?: string;\n}\n\nconst SIZE_CLASS: Record<BadgeSize, string> = {\n small: styles.sizeSmall,\n medium: styles.sizeMedium,\n large: styles.sizeLarge,\n};\n\nconst STATE_CLASS: Record<BadgeState, string> = {\n default: styles.stateDefault,\n danger: styles.stateDanger,\n success: styles.stateSuccess,\n warning: styles.stateWarning,\n disabled: styles.stateDisabled,\n};\n\nexport function Badge({\n state = 'default',\n size = 'medium',\n label,\n className,\n 'aria-label': ariaLabel,\n}: BadgeProps) {\n const cls = [\n styles.badge,\n SIZE_CLASS[size],\n STATE_CLASS[state],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const showLabel = size !== 'small' && label != null;\n\n return (\n <span\n className={cls}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {showLabel ? label : null}\n </span>\n );\n}\n"],"names":["SIZE_CLASS","styles","STATE_CLASS","Badge","state","size","label","className","ariaLabel","cls","showLabel","jsx"],"mappings":";;AAsBA,MAAMA,IAAwC;AAAA,EAC5C,OAAQC,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,OAAQA,EAAO;AACjB,GAEMC,IAA0C;AAAA,EAC9C,SAAUD,EAAO;AAAA,EACjB,QAAUA,EAAO;AAAA,EACjB,SAAUA,EAAO;AAAA,EACjB,SAAUA,EAAO;AAAA,EACjB,UAAUA,EAAO;AACnB;AAEO,SAASE,EAAM;AAAA,EACpB,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAcC;AAChB,GAAe;AACb,QAAMC,IAAM;AAAA,IACVR,EAAO;AAAA,IACPD,EAAWK,CAAI;AAAA,IACfH,EAAYE,CAAK;AAAA,IACjBG;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELG,IAAYL,MAAS,WAAWC,KAAS;AAE/C,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWF;AAAA,MACX,cAAYD;AAAA,MACZ,MAAK;AAAA,MAEJ,cAAYF,IAAQ;AAAA,IAAA;AAAA,EAAA;AAG3B;"}
@@ -0,0 +1 @@
1
+ ._badge_6k6ib_17{display:inline-flex;align-items:center;justify-content:center;border-radius:1000px;flex-shrink:0;font-family:var(--font-family-base, system-ui, sans-serif);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-10);white-space:nowrap}._sizeSmall_6k6ib_30{width:8px;height:8px}._sizeMedium_6k6ib_35{width:16px;height:16px;min-width:16px;padding:0 2px;font-size:var(--font-size-10);line-height:var(--font-line-height-10);color:var(--color-text-neutral-inverse)}._sizeLarge_6k6ib_45{width:20px;height:20px;min-width:20px;padding:2px;font-size:var(--font-size-12);line-height:var(--font-line-height-12);color:var(--color-text-neutral-inverse)}._stateDefault_6k6ib_56{background-color:var(--color-fill-feedback-info-default)}._stateDanger_6k6ib_61{background-color:var(--color-fill-feedback-danger-default)}._stateSuccess_6k6ib_66{background-color:var(--color-fill-feedback-success-default)}._stateWarning_6k6ib_71{background-color:var(--color-fill-feedback-warning-default)}._stateDisabled_6k6ib_80{background-color:var(--color-fill-neutral-muted)}._stateDisabled_6k6ib_80._sizeMedium_6k6ib_35,._stateDisabled_6k6ib_80._sizeLarge_6k6ib_45{color:var(--color-text-neutral-mudle)}
@@ -0,0 +1,24 @@
1
+ import './Badge.module.css';const e = "_badge_6k6ib_17", s = "_sizeSmall_6k6ib_30", t = "_sizeMedium_6k6ib_35", a = "_sizeLarge_6k6ib_45", i = "_stateDefault_6k6ib_56", _ = "_stateDanger_6k6ib_61", n = "_stateSuccess_6k6ib_66", c = "_stateWarning_6k6ib_71", b = "_stateDisabled_6k6ib_80", l = {
2
+ badge: e,
3
+ sizeSmall: s,
4
+ sizeMedium: t,
5
+ sizeLarge: a,
6
+ stateDefault: i,
7
+ stateDanger: _,
8
+ stateSuccess: n,
9
+ stateWarning: c,
10
+ stateDisabled: b
11
+ };
12
+ export {
13
+ e as badge,
14
+ l as default,
15
+ a as sizeLarge,
16
+ t as sizeMedium,
17
+ s as sizeSmall,
18
+ _ as stateDanger,
19
+ i as stateDefault,
20
+ b as stateDisabled,
21
+ n as stateSuccess,
22
+ c as stateWarning
23
+ };
24
+ //# sourceMappingURL=Badge.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,19 @@
1
+ import { jsx as i, jsxs as c } from "react/jsx-runtime";
2
+ import o from "./BottomBar.module.css.js";
3
+ function m({
4
+ primaryAction: t,
5
+ secondaryAction: r,
6
+ children: e,
7
+ className: n
8
+ }) {
9
+ const s = [o.bottomBar, n].filter(Boolean).join(" ");
10
+ return /* @__PURE__ */ i("footer", { className: s, role: "contentinfo", children: /* @__PURE__ */ c("div", { className: o.actions, children: [
11
+ r,
12
+ e,
13
+ t
14
+ ] }) });
15
+ }
16
+ export {
17
+ m as BottomBar
18
+ };
19
+ //# sourceMappingURL=BottomBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomBar.js","sources":["../../src/BottomBar/BottomBar.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './BottomBar.module.css';\n\nexport interface BottomBarProps {\n /** Slot for the primary action (rightmost button). Typically a primary Button. */\n primaryAction?: React.ReactNode;\n /** Slot for the secondary action (left of primary). Typically a secondary Button. */\n secondaryAction?: React.ReactNode;\n /** Additional children rendered inside the actions group, after secondaryAction. */\n children?: React.ReactNode;\n className?: string;\n}\n\nexport function BottomBar({\n primaryAction,\n secondaryAction,\n children,\n className,\n}: BottomBarProps) {\n const cls = [styles.bottomBar, className].filter(Boolean).join(' ');\n\n return (\n <footer className={cls} role=\"contentinfo\">\n <div className={styles.actions}>\n {secondaryAction}\n {children}\n {primaryAction}\n </div>\n </footer>\n );\n}\n"],"names":["BottomBar","primaryAction","secondaryAction","children","className","cls","styles","jsx","jsxs"],"mappings":";;AAaO,SAASA,EAAU;AAAA,EACxB,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAmB;AACjB,QAAMC,IAAM,CAACC,EAAO,WAAWF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAElE,SACE,gBAAAG,EAAC,UAAA,EAAO,WAAWF,GAAK,MAAK,eAC3B,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWF,EAAO,SACpB,UAAA;AAAA,IAAAJ;AAAA,IACAC;AAAA,IACAF;AAAA,EAAA,EAAA,CACH,EAAA,CACF;AAEJ;"}
@@ -0,0 +1 @@
1
+ ._bottomBar_p1aj3_2{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;width:100%;height:72px;padding:8px 36px;background-color:var(--color-canvas-neutral-white);box-shadow:0 -1px 2px #0e0f2312;box-sizing:border-box;flex-shrink:0}._actions_p1aj3_17{display:flex;flex-direction:row;align-items:center;gap:9px;flex-shrink:0}
@@ -0,0 +1,10 @@
1
+ import './BottomBar.module.css';const t = "_bottomBar_p1aj3_2", o = "_actions_p1aj3_17", a = {
2
+ bottomBar: t,
3
+ actions: o
4
+ };
5
+ export {
6
+ o as actions,
7
+ t as bottomBar,
8
+ a as default
9
+ };
10
+ //# sourceMappingURL=BottomBar.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomBar.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,40 @@
1
+ import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
+ import m from "react";
3
+ import { CaretCircleRight as h } from "@phosphor-icons/react";
4
+ import { Icon as d } from "../Icon/Icon.js";
5
+ import r from "./Breadcrumbs.module.css.js";
6
+ function C({
7
+ items: n,
8
+ title: s,
9
+ className: o,
10
+ ariaLabel: a = "Breadcrumb"
11
+ }) {
12
+ const t = [r.breadcrumbs, o].filter(Boolean).join(" ");
13
+ return /* @__PURE__ */ c("nav", { "aria-label": a, className: t, children: [
14
+ /* @__PURE__ */ e("ol", { className: r.trail, "aria-label": a, children: n.map((l, i) => /* @__PURE__ */ c(m.Fragment, { children: [
15
+ i > 0 && /* @__PURE__ */ e("li", { className: r.separator, "aria-hidden": "true", children: /* @__PURE__ */ e(d, { as: h, size: 16 }) }),
16
+ /* @__PURE__ */ e("li", { children: l.href ? /* @__PURE__ */ e(
17
+ "a",
18
+ {
19
+ href: l.href,
20
+ className: `${r.item} ${r.itemLink}`,
21
+ onClick: l.onClick,
22
+ children: l.label
23
+ }
24
+ ) : l.onClick ? /* @__PURE__ */ e(
25
+ "button",
26
+ {
27
+ type: "button",
28
+ className: `${r.item} ${r.itemLink}`,
29
+ onClick: l.onClick,
30
+ children: l.label
31
+ }
32
+ ) : /* @__PURE__ */ e("span", { className: r.item, children: l.label }) })
33
+ ] }, i)) }),
34
+ /* @__PURE__ */ e("h1", { className: r.title, children: s })
35
+ ] });
36
+ }
37
+ export {
38
+ C as Breadcrumbs
39
+ };
40
+ //# sourceMappingURL=Breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.js","sources":["../../src/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import React from 'react';\nimport { CaretCircleRight } from '@phosphor-icons/react';\nimport { Icon } from '../Icon/index.js';\nimport styles from './Breadcrumbs.module.css';\n\nexport interface BreadcrumbItem {\n /** Visible label for this breadcrumb step. */\n label: string;\n /** Optional href — when provided the item renders as an anchor tag. */\n href?: string;\n /** Optional click handler. */\n onClick?: (event: React.MouseEvent) => void;\n}\n\nexport interface BreadcrumbsProps {\n /**\n * The breadcrumb trail items rendered before the page title.\n * Supports 1–4 items (matches Figma variants \"Qtd. diretórios=1..4\").\n */\n items: [BreadcrumbItem, ...BreadcrumbItem[]];\n /** Current page title shown below the trail. */\n title: string;\n /** Additional CSS class name. */\n className?: string;\n /** aria-label for the nav landmark. Defaults to \"Breadcrumb\". */\n ariaLabel?: string;\n}\n\nexport function Breadcrumbs({\n items,\n title,\n className,\n ariaLabel = 'Breadcrumb',\n}: BreadcrumbsProps) {\n const cls = [styles.breadcrumbs, className].filter(Boolean).join(' ');\n\n return (\n <nav aria-label={ariaLabel} className={cls}>\n <ol className={styles.trail} aria-label={ariaLabel}>\n {items.map((item, index) => (\n <React.Fragment key={index}>\n {index > 0 && (\n <li className={styles.separator} aria-hidden=\"true\">\n <Icon as={CaretCircleRight} size={16} />\n </li>\n )}\n <li>\n {item.href ? (\n <a\n href={item.href}\n className={`${styles.item} ${styles.itemLink}`}\n onClick={item.onClick}\n >\n {item.label}\n </a>\n ) : item.onClick ? (\n <button\n type=\"button\"\n className={`${styles.item} ${styles.itemLink}`}\n onClick={item.onClick}\n >\n {item.label}\n </button>\n ) : (\n <span className={styles.item}>{item.label}</span>\n )}\n </li>\n </React.Fragment>\n ))}\n </ol>\n\n <h1 className={styles.title}>{title}</h1>\n </nav>\n );\n}\n"],"names":["Breadcrumbs","items","title","className","ariaLabel","cls","styles","jsxs","jsx","item","index","React","Icon","CaretCircleRight"],"mappings":";;;;;AA4BO,SAASA,EAAY;AAAA,EAC1B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAqB;AACnB,QAAMC,IAAM,CAACC,EAAO,aAAaH,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEpE,SACE,gBAAAI,EAAC,OAAA,EAAI,cAAYH,GAAW,WAAWC,GACrC,UAAA;AAAA,IAAA,gBAAAG,EAAC,MAAA,EAAG,WAAWF,EAAO,OAAO,cAAYF,GACtC,UAAAH,EAAM,IAAI,CAACQ,GAAMC,MAChB,gBAAAH,EAACI,EAAM,UAAN,EACE,UAAA;AAAA,MAAAD,IAAQ,KACP,gBAAAF,EAAC,MAAA,EAAG,WAAWF,EAAO,WAAW,eAAY,QAC3C,UAAA,gBAAAE,EAACI,GAAA,EAAK,IAAIC,GAAkB,MAAM,IAAI,GACxC;AAAA,MAEF,gBAAAL,EAAC,MAAA,EACE,UAAAC,EAAK,OACJ,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMC,EAAK;AAAA,UACX,WAAW,GAAGH,EAAO,IAAI,IAAIA,EAAO,QAAQ;AAAA,UAC5C,SAASG,EAAK;AAAA,UAEb,UAAAA,EAAK;AAAA,QAAA;AAAA,MAAA,IAENA,EAAK,UACP,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW,GAAGF,EAAO,IAAI,IAAIA,EAAO,QAAQ;AAAA,UAC5C,SAASG,EAAK;AAAA,UAEb,UAAAA,EAAK;AAAA,QAAA;AAAA,MAAA,sBAGP,QAAA,EAAK,WAAWH,EAAO,MAAO,UAAAG,EAAK,OAAM,EAAA,CAE9C;AAAA,IAAA,KA1BmBC,CA2BrB,CACD,GACH;AAAA,IAEA,gBAAAF,EAAC,MAAA,EAAG,WAAWF,EAAO,OAAQ,UAAAJ,EAAA,CAAM;AAAA,EAAA,GACtC;AAEJ;"}
@@ -0,0 +1 @@
1
+ ._breadcrumbs_82ywv_2{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px}._trail_82ywv_10{display:flex;flex-direction:row;align-items:center;gap:8px;flex-shrink:0;width:100%;list-style:none;margin:0;padding:0}._trail_82ywv_10>li{display:flex;align-items:center;list-style:none}._item_82ywv_31{font-family:var(--font-family-base, system-ui, sans-serif);font-size:var(--font-size-14);font-weight:var(--font-weight-semibold);line-height:var(--font-line-height-14, 20px);color:var(--color-text-neutral-subtle);white-space:nowrap;flex-shrink:0;text-decoration:none;background:none;border:none;padding:0;margin:0;cursor:default}._itemLink_82ywv_48{cursor:pointer}._itemLink_82ywv_48:hover{color:var(--color-text-neutral-mudle);text-decoration:underline}._itemLink_82ywv_48:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:2px}._separator_82ywv_64{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-icon-neutral-subtle)}._title_82ywv_73{font-family:var(--font-family-base, system-ui, sans-serif);font-size:var(--font-size-24);font-weight:var(--font-weight-semibold);line-height:var(--font-line-height-24, 32px);color:var(--color-text-brand-default);margin:0;width:100%}
@@ -0,0 +1,18 @@
1
+ import './Breadcrumbs.module.css';const t = "_breadcrumbs_82ywv_2", e = "_trail_82ywv_10", _ = "_item_82ywv_31", r = "_itemLink_82ywv_48", s = "_separator_82ywv_64", i = "_title_82ywv_73", a = {
2
+ breadcrumbs: t,
3
+ trail: e,
4
+ item: _,
5
+ itemLink: r,
6
+ separator: s,
7
+ title: i
8
+ };
9
+ export {
10
+ t as breadcrumbs,
11
+ a as default,
12
+ _ as item,
13
+ r as itemLink,
14
+ s as separator,
15
+ i as title,
16
+ e as trail
17
+ };
18
+ //# sourceMappingURL=Breadcrumbs.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,53 @@
1
+ import { jsxs as y, jsx as n } from "react/jsx-runtime";
2
+ import { Icon as e } from "../Icon/Icon.js";
3
+ import a from "./Button.module.css.js";
4
+ const d = {
5
+ primary: a.variantPrimary,
6
+ secondary: a.variantSecondary,
7
+ tertiary: a.variantTertiary,
8
+ danger: a.variantDanger,
9
+ link: a.variantLink
10
+ }, p = {
11
+ medium: a.sizeMedium,
12
+ small: a.sizeSmall,
13
+ xsmall: a.sizeXsmall
14
+ }, f = {
15
+ medium: 20,
16
+ small: 20,
17
+ xsmall: 16
18
+ };
19
+ function A({
20
+ variant: o = "primary",
21
+ size: r = "medium",
22
+ leadingIcon: i,
23
+ trailingIcon: t,
24
+ className: l,
25
+ children: c,
26
+ disabled: s,
27
+ ...u
28
+ }) {
29
+ const S = [
30
+ a.button,
31
+ d[o],
32
+ p[r],
33
+ l
34
+ ].filter(Boolean).join(" "), m = f[r];
35
+ return /* @__PURE__ */ y(
36
+ "button",
37
+ {
38
+ className: S,
39
+ disabled: s,
40
+ "aria-disabled": s,
41
+ ...u,
42
+ children: [
43
+ i && /* @__PURE__ */ n(e, { as: i, size: m }),
44
+ c,
45
+ t && /* @__PURE__ */ n(e, { as: t, size: m })
46
+ ]
47
+ }
48
+ );
49
+ }
50
+ export {
51
+ A as Button
52
+ };
53
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../src/Button/Button.tsx"],"sourcesContent":["import React from 'react';\nimport type { Icon as PhosphorIcon } from '@phosphor-icons/react';\nimport { Icon } from '../Icon/index.js';\nimport styles from './Button.module.css';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'danger' | 'link';\nexport type ButtonSize = 'medium' | 'small' | 'xsmall';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n leadingIcon?: PhosphorIcon;\n trailingIcon?: PhosphorIcon;\n}\n\nconst VARIANT_CLASS: Record<ButtonVariant, string> = {\n primary: styles.variantPrimary,\n secondary: styles.variantSecondary,\n tertiary: styles.variantTertiary,\n danger: styles.variantDanger,\n link: styles.variantLink,\n};\n\nconst SIZE_CLASS: Record<ButtonSize, string> = {\n medium: styles.sizeMedium,\n small: styles.sizeSmall,\n xsmall: styles.sizeXsmall,\n};\n\nconst ICON_SIZE: Record<ButtonSize, number> = {\n medium: 20,\n small: 20,\n xsmall: 16,\n};\n\nexport function Button({\n variant = 'primary',\n size = 'medium',\n leadingIcon,\n trailingIcon,\n className,\n children,\n disabled,\n ...props\n}: ButtonProps) {\n const cls = [\n styles.button,\n VARIANT_CLASS[variant],\n SIZE_CLASS[size],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconSize = ICON_SIZE[size];\n\n return (\n <button\n className={cls}\n disabled={disabled}\n aria-disabled={disabled}\n {...props}\n >\n {leadingIcon && <Icon as={leadingIcon} size={iconSize} />}\n {children}\n {trailingIcon && <Icon as={trailingIcon} size={iconSize} />}\n </button>\n );\n}\n"],"names":["VARIANT_CLASS","styles","SIZE_CLASS","ICON_SIZE","Button","variant","size","leadingIcon","trailingIcon","className","children","disabled","props","cls","iconSize","jsxs","jsx","Icon"],"mappings":";;;AAeA,MAAMA,IAA+C;AAAA,EACnD,SAAWC,EAAO;AAAA,EAClB,WAAWA,EAAO;AAAA,EAClB,UAAWA,EAAO;AAAA,EAClB,QAAWA,EAAO;AAAA,EAClB,MAAWA,EAAO;AACpB,GAEMC,IAAyC;AAAA,EAC7C,QAAQD,EAAO;AAAA,EACf,OAAQA,EAAO;AAAA,EACf,QAAQA,EAAO;AACjB,GAEME,IAAwC;AAAA,EAC5C,QAAQ;AAAA,EACR,OAAQ;AAAA,EACR,QAAQ;AACV;AAEO,SAASC,EAAO;AAAA,EACrB,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAgB;AACd,QAAMC,IAAM;AAAA,IACVZ,EAAO;AAAA,IACPD,EAAcK,CAAO;AAAA,IACrBH,EAAWI,CAAI;AAAA,IACfG;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELK,IAAWX,EAAUG,CAAI;AAE/B,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWF;AAAA,MACX,UAAAF;AAAA,MACA,iBAAeA;AAAA,MACd,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAL,KAAgB,gBAAAS,EAACC,GAAA,EAAK,IAAIV,GAAc,MAAMO,GAAU;AAAA,QACxDJ;AAAA,QACAF,KAAgB,gBAAAQ,EAACC,GAAA,EAAK,IAAIT,GAAc,MAAMM,EAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG/D;"}
@@ -0,0 +1 @@
1
+ ._button_lhbg8_2{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;font-family:var(--font-family-base, system-ui, sans-serif);font-size:var(--font-size-14);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-14);cursor:pointer;border:2px solid transparent;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,opacity .12s ease}._button_lhbg8_2:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._button_lhbg8_2:disabled,._button_lhbg8_2[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}._sizeMedium_lhbg8_38{height:42px;padding:0 16px}._sizeSmall_lhbg8_43{height:36px;padding:0 16px;font-size:var(--font-size-14)}._sizeXsmall_lhbg8_49{height:30px;padding:0 16px;font-size:var(--font-size-12)}._variantPrimary_lhbg8_59{background-color:var(--color-fill-brand-default);color:var(--color-text-neutral-inverse);border-color:transparent}._variantPrimary_lhbg8_59:hover:not(:disabled){background-color:var(--color-fill-interaction-brand-hover)}._variantSecondary_lhbg8_73{background-color:var(--color-canvas-neutral-white);color:var(--color-text-brand-default);border-color:var(--color-stroke-brand-default)}._variantSecondary_lhbg8_73:hover:not(:disabled){color:var(--color-text-brand-strong);border-color:var(--color-stroke-interaction-brand-hover)}._variantTertiary_lhbg8_88{background-color:var(--color-canvas-neutral-white);color:var(--color-text-neutral-mudle);border-color:var(--color-stroke-neutral-default)}._variantTertiary_lhbg8_88:hover:not(:disabled){border-color:var(--color-stroke-interaction-neutral-hover)}._variantDanger_lhbg8_102{background-color:var(--color-canvas-neutral-white);color:var(--color-text-feedback-danger-default);border-color:var(--color-stroke-feedback-danger-default)}._variantDanger_lhbg8_102:hover:not(:disabled){color:var(--color-text-interaction-danger-hover);border-color:var(--color-stroke-interaction-danger-hover)}._variantLink_lhbg8_117{background-color:transparent;color:var(--color-text-brand-default);border-color:transparent}._variantLink_lhbg8_117:hover:not(:disabled){color:var(--color-text-brand-strong);text-decoration:underline}
@@ -0,0 +1,24 @@
1
+ import './Button.module.css';const a = "_button_lhbg8_2", n = "_sizeMedium_lhbg8_38", t = "_sizeSmall_lhbg8_43", i = "_sizeXsmall_lhbg8_49", r = "_variantPrimary_lhbg8_59", _ = "_variantSecondary_lhbg8_73", s = "_variantTertiary_lhbg8_88", e = "_variantDanger_lhbg8_102", l = "_variantLink_lhbg8_117", o = {
2
+ button: a,
3
+ sizeMedium: n,
4
+ sizeSmall: t,
5
+ sizeXsmall: i,
6
+ variantPrimary: r,
7
+ variantSecondary: _,
8
+ variantTertiary: s,
9
+ variantDanger: e,
10
+ variantLink: l
11
+ };
12
+ export {
13
+ a as button,
14
+ o as default,
15
+ n as sizeMedium,
16
+ t as sizeSmall,
17
+ i as sizeXsmall,
18
+ e as variantDanger,
19
+ l as variantLink,
20
+ r as variantPrimary,
21
+ _ as variantSecondary,
22
+ s as variantTertiary
23
+ };
24
+ //# sourceMappingURL=Button.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,66 @@
1
+ import { jsx as o, jsxs as i } from "react/jsx-runtime";
2
+ import { Info as p, Warning as N } from "@phosphor-icons/react";
3
+ import { Icon as g } from "../Icon/Icon.js";
4
+ import { Button as u } from "../Button/Button.js";
5
+ import n from "./Callout.module.css.js";
6
+ const C = {
7
+ warning: n.variantWarning,
8
+ info: n.variantInfo
9
+ }, I = {
10
+ warning: N,
11
+ info: p
12
+ };
13
+ function z({
14
+ type: e = "warning",
15
+ message: t,
16
+ detailLabel: r,
17
+ detailText: s,
18
+ actionLabel: a,
19
+ actionIcon: m,
20
+ onAction: d,
21
+ disabled: c,
22
+ className: f
23
+ }) {
24
+ const v = [
25
+ n.callout,
26
+ C[e],
27
+ c ? n.disabled : void 0,
28
+ f
29
+ ].filter(Boolean).join(" "), h = I[e], l = !!(r || s);
30
+ return /* @__PURE__ */ o(
31
+ "div",
32
+ {
33
+ className: v,
34
+ "aria-disabled": c,
35
+ role: "note",
36
+ children: /* @__PURE__ */ i("div", { className: n.container, children: [
37
+ /* @__PURE__ */ i("div", { className: n.iconTextRow, children: [
38
+ /* @__PURE__ */ o("div", { className: n.iconContainer, children: /* @__PURE__ */ o(g, { as: h, size: 20, color: "var(--color-icon-neutral-inverse)" }) }),
39
+ /* @__PURE__ */ o("span", { className: n.message, children: t })
40
+ ] }),
41
+ (l || a) && /* @__PURE__ */ i("div", { className: n.messageAndButton, children: [
42
+ l && /* @__PURE__ */ i("span", { className: n.detail, children: [
43
+ r && /* @__PURE__ */ o("span", { className: n.detailLabel, children: r }),
44
+ r && s ? " " : "",
45
+ s
46
+ ] }),
47
+ a && /* @__PURE__ */ o(
48
+ u,
49
+ {
50
+ variant: "tertiary",
51
+ size: "medium",
52
+ leadingIcon: m,
53
+ onClick: d,
54
+ disabled: c,
55
+ children: a
56
+ }
57
+ )
58
+ ] })
59
+ ] })
60
+ }
61
+ );
62
+ }
63
+ export {
64
+ z as Callout
65
+ };
66
+ //# sourceMappingURL=Callout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callout.js","sources":["../../src/Callout/Callout.tsx"],"sourcesContent":["import React from 'react';\nimport type { Icon as PhosphorIcon } from '@phosphor-icons/react';\nimport { Warning, Info } from '@phosphor-icons/react';\nimport { Icon } from '../Icon/index.js';\nimport { Button } from '../Button/index.js';\nimport styles from './Callout.module.css';\n\nexport type CalloutType = 'warning' | 'info';\n\nexport interface CalloutProps {\n /** Visual type (maps to Figma Type=Warning / Type=Info) */\n type?: CalloutType;\n /** Main callout message shown in the icon row */\n message: string;\n /** Optional secondary detail text (rendered with a semibold label prefix) */\n detailLabel?: string;\n /** Optional detail body text following the label */\n detailText?: string;\n /** Optional action button label. When provided a tertiary Button is rendered. */\n actionLabel?: string;\n /** Leading icon for the optional action button */\n actionIcon?: PhosphorIcon;\n /** Callback fired when the action button is clicked */\n onAction?: React.MouseEventHandler<HTMLButtonElement>;\n /** Visually and interactively disables the callout */\n disabled?: boolean;\n /** Additional class names applied to the root element */\n className?: string;\n}\n\nconst TYPE_CLASS: Record<CalloutType, string> = {\n warning: styles.variantWarning,\n info: styles.variantInfo,\n};\n\nconst TYPE_ICON: Record<CalloutType, PhosphorIcon> = {\n warning: Warning,\n info: Info,\n};\n\nexport function Callout({\n type = 'warning',\n message,\n detailLabel,\n detailText,\n actionLabel,\n actionIcon,\n onAction,\n disabled,\n className,\n}: CalloutProps) {\n const rootCls = [\n styles.callout,\n TYPE_CLASS[type],\n disabled ? styles.disabled : undefined,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const typeIcon = TYPE_ICON[type];\n const hasDetail = Boolean(detailLabel || detailText);\n\n return (\n <div\n className={rootCls}\n aria-disabled={disabled}\n role=\"note\"\n >\n <div className={styles.container}>\n {/* Icon + heading row */}\n <div className={styles.iconTextRow}>\n <div className={styles.iconContainer}>\n <Icon as={typeIcon} size={20} color=\"var(--color-icon-neutral-inverse)\" />\n </div>\n <span className={styles.message}>{message}</span>\n </div>\n\n {/* Detail + optional action button */}\n {(hasDetail || actionLabel) && (\n <div className={styles.messageAndButton}>\n {hasDetail && (\n <span className={styles.detail}>\n {detailLabel && (\n <span className={styles.detailLabel}>{detailLabel}</span>\n )}\n {detailLabel && detailText ? ' ' : ''}\n {detailText}\n </span>\n )}\n {actionLabel && (\n <Button\n variant=\"tertiary\"\n size=\"medium\"\n leadingIcon={actionIcon}\n onClick={onAction}\n disabled={disabled}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["TYPE_CLASS","styles","TYPE_ICON","Warning","Info","Callout","type","message","detailLabel","detailText","actionLabel","actionIcon","onAction","disabled","className","rootCls","typeIcon","hasDetail","jsx","jsxs","Icon","Button"],"mappings":";;;;;AA8BA,MAAMA,IAA0C;AAAA,EAC9C,SAASC,EAAO;AAAA,EAChB,MAASA,EAAO;AAClB,GAEMC,IAA+C;AAAA,EACnD,SAASC;AAAA,EACT,MAASC;AACX;AAEO,SAASC,EAAQ;AAAA,EACtB,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAiB;AACf,QAAMC,IAAU;AAAA,IACdd,EAAO;AAAA,IACPD,EAAWM,CAAI;AAAA,IACfO,IAAWZ,EAAO,WAAW;AAAA,IAC7Ba;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELE,IAAWd,EAAUI,CAAI,GACzBW,IAAY,GAAQT,KAAeC;AAEzC,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH;AAAA,MACX,iBAAeF;AAAA,MACf,MAAK;AAAA,MAEL,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAWlB,EAAO,WAErB,UAAA;AAAA,QAAA,gBAAAkB,EAAC,OAAA,EAAI,WAAWlB,EAAO,aACrB,UAAA;AAAA,UAAA,gBAAAiB,EAAC,OAAA,EAAI,WAAWjB,EAAO,eACrB,UAAA,gBAAAiB,EAACE,GAAA,EAAK,IAAIJ,GAAU,MAAM,IAAI,OAAM,oCAAA,CAAoC,GAC1E;AAAA,UACA,gBAAAE,EAAC,QAAA,EAAK,WAAWjB,EAAO,SAAU,UAAAM,EAAA,CAAQ;AAAA,QAAA,GAC5C;AAAA,SAGEU,KAAaP,MACb,gBAAAS,EAAC,OAAA,EAAI,WAAWlB,EAAO,kBACpB,UAAA;AAAA,UAAAgB,KACC,gBAAAE,EAAC,QAAA,EAAK,WAAWlB,EAAO,QACrB,UAAA;AAAA,YAAAO,KACC,gBAAAU,EAAC,QAAA,EAAK,WAAWjB,EAAO,aAAc,UAAAO,GAAY;AAAA,YAEnDA,KAAeC,IAAa,MAAM;AAAA,YAClCA;AAAA,UAAA,GACH;AAAA,UAEDC,KACC,gBAAAQ;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,aAAaV;AAAA,cACb,SAASC;AAAA,cACT,UAAAC;AAAA,cAEC,UAAAH;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CAEJ;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1 @@
1
+ ._callout_6mymb_2{display:flex;flex-direction:row;align-items:flex-start;padding:16px;border-radius:12px;border-width:1px;border-style:solid;width:100%;box-sizing:border-box;font-family:var(--font-family-base, system-ui, sans-serif)}._variantWarning_6mymb_17{background-color:var(--color-fill-feedback-warning-subtle);border-color:var(--color-stroke-feedback-warning-subtle)}._variantInfo_6mymb_23{background-color:var(--color-fill-feedback-info-subtle);border-color:var(--color-stroke-feedback-info-subtle)}._container_6mymb_29{display:flex;flex-direction:column;gap:8px;align-items:flex-start;flex:1 0 0;min-width:0;overflow:hidden}._iconTextRow_6mymb_40{display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;flex-shrink:0}._iconContainer_6mymb_50{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;flex-shrink:0}._variantWarning_6mymb_17 ._iconContainer_6mymb_50{background-color:var(--color-fill-feedback-warning-default)}._variantInfo_6mymb_23 ._iconContainer_6mymb_50{background-color:var(--color-fill-feedback-info-default)}._message_6mymb_69{flex:1 0 0;min-width:0;font-size:var(--font-size-14);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-14);color:var(--color-text-neutral-mudle)}._messageAndButton_6mymb_79{display:flex;flex-direction:column;gap:8px;align-items:flex-start;width:100%;flex-shrink:0;overflow:hidden}._detail_6mymb_90{font-size:var(--font-size-14);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-14);color:var(--color-text-neutral-mudle);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._detailLabel_6mymb_101{font-weight:var(--font-weight-semibold)}._callout_6mymb_2:where(._disabled_6mymb_106){opacity:.5;cursor:not-allowed;pointer-events:none}
@@ -0,0 +1,28 @@
1
+ import './Callout.module.css';const n = "_callout_6mymb_2", t = "_variantWarning_6mymb_17", a = "_variantInfo_6mymb_23", o = "_container_6mymb_29", e = "_iconTextRow_6mymb_40", _ = "_iconContainer_6mymb_50", i = "_message_6mymb_69", s = "_messageAndButton_6mymb_79", m = "_detail_6mymb_90", c = "_detailLabel_6mymb_101", l = "_disabled_6mymb_106", b = {
2
+ callout: n,
3
+ variantWarning: t,
4
+ variantInfo: a,
5
+ container: o,
6
+ iconTextRow: e,
7
+ iconContainer: _,
8
+ message: i,
9
+ messageAndButton: s,
10
+ detail: m,
11
+ detailLabel: c,
12
+ disabled: l
13
+ };
14
+ export {
15
+ n as callout,
16
+ o as container,
17
+ b as default,
18
+ m as detail,
19
+ c as detailLabel,
20
+ l as disabled,
21
+ _ as iconContainer,
22
+ e as iconTextRow,
23
+ i as message,
24
+ s as messageAndButton,
25
+ a as variantInfo,
26
+ t as variantWarning
27
+ };
28
+ //# sourceMappingURL=Callout.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callout.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
package/Card/Card.js ADDED
@@ -0,0 +1,39 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { Slot as d } from "../Slot/Slot.js";
3
+ import e from "./Card.module.css.js";
4
+ const n = {
5
+ small: e.sizeSmall,
6
+ medium: e.sizeMedium,
7
+ large: e.sizeLarge
8
+ }, S = {
9
+ shadow: e.styleShadow,
10
+ line: e.styleLine
11
+ };
12
+ function L({
13
+ size: o = "medium",
14
+ cardStyle: s = "shadow",
15
+ disabled: l = !1,
16
+ className: a,
17
+ children: r,
18
+ ...m
19
+ }) {
20
+ const t = [
21
+ e.card,
22
+ n[o],
23
+ S[s],
24
+ a
25
+ ].filter(Boolean).join(" ");
26
+ return /* @__PURE__ */ i(
27
+ "div",
28
+ {
29
+ className: t,
30
+ "aria-disabled": l || void 0,
31
+ ...m,
32
+ children: /* @__PURE__ */ i(d, { children: r })
33
+ }
34
+ );
35
+ }
36
+ export {
37
+ L as Card
38
+ };
39
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sources":["../../src/Card/Card.tsx"],"sourcesContent":["import React from 'react';\nimport { Slot } from '../Slot/index.js';\nimport styles from './Card.module.css';\n\nexport type CardSize = 'small' | 'medium' | 'large';\nexport type CardStyle = 'shadow' | 'line';\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: CardSize;\n cardStyle?: CardStyle;\n disabled?: boolean;\n}\n\nconst SIZE_CLASS: Record<CardSize, string> = {\n small: styles.sizeSmall,\n medium: styles.sizeMedium,\n large: styles.sizeLarge,\n};\n\nconst STYLE_CLASS: Record<CardStyle, string> = {\n shadow: styles.styleShadow,\n line: styles.styleLine,\n};\n\nexport function Card({\n size = 'medium',\n cardStyle = 'shadow',\n disabled = false,\n className,\n children,\n ...props\n}: CardProps) {\n const cls = [\n styles.card,\n SIZE_CLASS[size],\n STYLE_CLASS[cardStyle],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n className={cls}\n aria-disabled={disabled || undefined}\n {...props}\n >\n <Slot>{children}</Slot>\n </div>\n );\n}\n"],"names":["SIZE_CLASS","styles","STYLE_CLASS","Card","size","cardStyle","disabled","className","children","props","cls","jsx","Slot"],"mappings":";;;AAaA,MAAMA,IAAuC;AAAA,EAC3C,OAAQC,EAAO;AAAA,EACf,QAAQA,EAAO;AAAA,EACf,OAAQA,EAAO;AACjB,GAEMC,IAAyC;AAAA,EAC7C,QAAQD,EAAO;AAAA,EACf,MAAQA,EAAO;AACjB;AAEO,SAASE,EAAK;AAAA,EACnB,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAc;AACZ,QAAMC,IAAM;AAAA,IACVT,EAAO;AAAA,IACPD,EAAWI,CAAI;AAAA,IACfF,EAAYG,CAAS;AAAA,IACrBE;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,MACX,iBAAeJ,KAAY;AAAA,MAC1B,GAAGG;AAAA,MAEJ,UAAA,gBAAAE,EAACC,KAAM,UAAAJ,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGtB;"}
@@ -0,0 +1 @@
1
+ ._card_achli_2{display:flex;flex-direction:column;align-items:stretch;border-radius:8px;background-color:var(--color-canvas-neutral-white);border:1px solid transparent;box-sizing:border-box;position:relative;transition:box-shadow .12s ease,border-color .12s ease,opacity .12s ease}._card_achli_2:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._sizeSmall_achli_23{padding:16px;gap:10px}._sizeMedium_achli_28{padding:20px;gap:10px}._sizeLarge_achli_33{padding:24px;gap:10px}._styleShadow_achli_40{box-shadow:var(--shadow-layer-xs);border-color:transparent}._styleLine_achli_47{box-shadow:none;border-color:var(--color-stroke-neutral-default)}._card_achli_2[aria-disabled=true],._card_achli_2:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
@@ -0,0 +1,18 @@
1
+ import './Card.module.css';const e = "_card_achli_2", s = "_sizeSmall_achli_23", i = "_sizeMedium_achli_28", a = "_sizeLarge_achli_33", l = "_styleShadow_achli_40", _ = "_styleLine_achli_47", c = {
2
+ card: e,
3
+ sizeSmall: s,
4
+ sizeMedium: i,
5
+ sizeLarge: a,
6
+ styleShadow: l,
7
+ styleLine: _
8
+ };
9
+ export {
10
+ e as card,
11
+ c as default,
12
+ a as sizeLarge,
13
+ i as sizeMedium,
14
+ s as sizeSmall,
15
+ _ as styleLine,
16
+ l as styleShadow
17
+ };
18
+ //# sourceMappingURL=Card.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,90 @@
1
+ import { jsxs as h, jsx as n } from "react/jsx-runtime";
2
+ import u, { useId as v } from "react";
3
+ import e from "./Checkbox.module.css.js";
4
+ function C({
5
+ checked: s,
6
+ defaultChecked: i,
7
+ label: a,
8
+ disabled: c = !1,
9
+ className: m,
10
+ id: p,
11
+ onChange: f,
12
+ ...w
13
+ }) {
14
+ const x = v(), d = p ?? x, r = s !== void 0, t = r ? s === "indeterminate" : i === "indeterminate", o = r ? s === !0 : i === !0, k = [
15
+ e.box,
16
+ o ? e.checked : null,
17
+ t ? e.indeterminate : null
18
+ ].filter(Boolean).join(" "), g = [
19
+ e.checkbox,
20
+ c ? e.disabled : null,
21
+ m
22
+ ].filter(Boolean).join(" "), l = u.useRef(null);
23
+ return u.useEffect(() => {
24
+ l.current && (l.current.indeterminate = t);
25
+ }, [t]), /* @__PURE__ */ h("label", { className: g, htmlFor: d, children: [
26
+ /* @__PURE__ */ n(
27
+ "input",
28
+ {
29
+ ref: l,
30
+ id: d,
31
+ type: "checkbox",
32
+ className: e.input,
33
+ checked: r ? o || t : void 0,
34
+ defaultChecked: r ? void 0 : i === !0 || i === "indeterminate",
35
+ disabled: c,
36
+ "aria-checked": t ? "mixed" : o,
37
+ onChange: f,
38
+ ...w
39
+ }
40
+ ),
41
+ /* @__PURE__ */ h("span", { className: k, "aria-hidden": "true", children: [
42
+ o && /* @__PURE__ */ n("span", { className: e.icon, children: /* @__PURE__ */ n(
43
+ "svg",
44
+ {
45
+ width: "16",
46
+ height: "16",
47
+ viewBox: "0 0 16 16",
48
+ fill: "none",
49
+ xmlns: "http://www.w3.org/2000/svg",
50
+ "aria-hidden": "true",
51
+ children: /* @__PURE__ */ n(
52
+ "path",
53
+ {
54
+ d: "M2.5 8L6.5 12L13.5 4",
55
+ stroke: "currentColor",
56
+ strokeWidth: "2",
57
+ strokeLinecap: "round",
58
+ strokeLinejoin: "round"
59
+ }
60
+ )
61
+ }
62
+ ) }),
63
+ t && /* @__PURE__ */ n("span", { className: e.icon, children: /* @__PURE__ */ n(
64
+ "svg",
65
+ {
66
+ width: "16",
67
+ height: "16",
68
+ viewBox: "0 0 16 16",
69
+ fill: "none",
70
+ xmlns: "http://www.w3.org/2000/svg",
71
+ "aria-hidden": "true",
72
+ children: /* @__PURE__ */ n(
73
+ "path",
74
+ {
75
+ d: "M3 8H13",
76
+ stroke: "currentColor",
77
+ strokeWidth: "2",
78
+ strokeLinecap: "round"
79
+ }
80
+ )
81
+ }
82
+ ) })
83
+ ] }),
84
+ a && /* @__PURE__ */ n("span", { className: e.label, children: a })
85
+ ] });
86
+ }
87
+ export {
88
+ C as Checkbox
89
+ };
90
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../src/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport styles from './Checkbox.module.css';\n\nexport type CheckboxCheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'type'> {\n /** Checked state: true = selected, false = unselected, 'indeterminate' = partial. */\n checked?: CheckboxCheckedState;\n /** Uncontrolled default checked state. */\n defaultChecked?: CheckboxCheckedState;\n /** Label text rendered next to the checkbox. */\n label?: string;\n /** Disables the checkbox. */\n disabled?: boolean;\n /** Additional className for the outer wrapper. */\n className?: string;\n}\n\nexport function Checkbox({\n checked,\n defaultChecked,\n label,\n disabled = false,\n className,\n id: idProp,\n onChange,\n ...props\n}: CheckboxProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n\n // Resolve internal checked/indeterminate values\n const isControlled = checked !== undefined;\n const isIndeterminate = isControlled\n ? checked === 'indeterminate'\n : defaultChecked === 'indeterminate';\n const isChecked = isControlled\n ? checked === true\n : defaultChecked === true;\n\n // Build box class names\n const boxCls = [\n styles.box,\n isChecked ? styles.checked : null,\n isIndeterminate ? styles.indeterminate : null,\n ]\n .filter(Boolean)\n .join(' ');\n\n const wrapperCls = [\n styles.checkbox,\n disabled ? styles.disabled : null,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Attach indeterminate imperatively via ref (HTML attribute doesn't support it)\n const inputRef = React.useRef<HTMLInputElement>(null);\n React.useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label className={wrapperCls} htmlFor={id}>\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={styles.input}\n checked={isControlled ? (isChecked || isIndeterminate) : undefined}\n defaultChecked={\n !isControlled\n ? defaultChecked === true || defaultChecked === 'indeterminate'\n : undefined\n }\n disabled={disabled}\n aria-checked={isIndeterminate ? 'mixed' : isChecked}\n onChange={onChange}\n {...props}\n />\n <span className={boxCls} aria-hidden=\"true\">\n {isChecked && (\n <span className={styles.icon}>\n {/* Check mark SVG — matches Figma \"Check\" icon at 16×16 */}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M2.5 8L6.5 12L13.5 4\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n )}\n {isIndeterminate && (\n <span className={styles.icon}>\n {/* Minus / indeterminate SVG — matches Figma \"Minus\" icon at 18×18 */}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 8H13\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </span>\n )}\n </span>\n {label && <span className={styles.label}>{label}</span>}\n </label>\n );\n}\n"],"names":["Checkbox","checked","defaultChecked","label","disabled","className","idProp","onChange","props","generatedId","useId","id","isControlled","isIndeterminate","isChecked","boxCls","styles","wrapperCls","inputRef","React","jsxs","jsx"],"mappings":";;;AAmBO,SAASA,EAAS;AAAA,EACvB,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,UAAAC;AAAA,EACA,GAAGC;AACL,GAAkB;AAChB,QAAMC,IAAcC,EAAA,GACdC,IAAKL,KAAUG,GAGfG,IAAeX,MAAY,QAC3BY,IAAkBD,IACpBX,MAAY,kBACZC,MAAmB,iBACjBY,IAAYF,IACdX,MAAY,KACZC,MAAmB,IAGjBa,IAAS;AAAA,IACbC,EAAO;AAAA,IACPF,IAAYE,EAAO,UAAU;AAAA,IAC7BH,IAAkBG,EAAO,gBAAgB;AAAA,EAAA,EAExC,OAAO,OAAO,EACd,KAAK,GAAG,GAELC,IAAa;AAAA,IACjBD,EAAO;AAAA,IACPZ,IAAWY,EAAO,WAAW;AAAA,IAC7BX;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAGLa,IAAWC,EAAM,OAAyB,IAAI;AACpD,SAAAA,EAAM,UAAU,MAAM;AACpB,IAAID,EAAS,YACXA,EAAS,QAAQ,gBAAgBL;AAAA,EAErC,GAAG,CAACA,CAAe,CAAC,GAGlB,gBAAAO,EAAC,SAAA,EAAM,WAAWH,GAAY,SAASN,GACrC,UAAA;AAAA,IAAA,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKH;AAAA,QACL,IAAAP;AAAA,QACA,MAAK;AAAA,QACL,WAAWK,EAAO;AAAA,QAClB,SAASJ,IAAgBE,KAAaD,IAAmB;AAAA,QACzD,gBACGD,IAEG,SADAV,MAAmB,MAAQA,MAAmB;AAAA,QAGpD,UAAAE;AAAA,QACA,gBAAcS,IAAkB,UAAUC;AAAA,QAC1C,UAAAP;AAAA,QACC,GAAGC;AAAA,MAAA;AAAA,IAAA;AAAA,IAEN,gBAAAY,EAAC,QAAA,EAAK,WAAWL,GAAQ,eAAY,QAClC,UAAA;AAAA,MAAAD,KACC,gBAAAO,EAAC,QAAA,EAAK,WAAWL,EAAO,MAEtB,UAAA,gBAAAK;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,eAAY;AAAA,UAEZ,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,GAAE;AAAA,cACF,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA,YAAA;AAAA,UAAA;AAAA,QACjB;AAAA,MAAA,GAEJ;AAAA,MAEDR,KACC,gBAAAQ,EAAC,QAAA,EAAK,WAAWL,EAAO,MAEtB,UAAA,gBAAAK;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,eAAY;AAAA,UAEZ,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,GAAE;AAAA,cACF,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,YAAA;AAAA,UAAA;AAAA,QAChB;AAAA,MAAA,EACF,CACF;AAAA,IAAA,GAEJ;AAAA,IACClB,KAAS,gBAAAkB,EAAC,QAAA,EAAK,WAAWL,EAAO,OAAQ,UAAAb,EAAA,CAAM;AAAA,EAAA,GAClD;AAEJ;"}