@pantool/components 1.0.0-alpha.0 → 1.0.0-alpha.10

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 (114) hide show
  1. package/dist/atoms/avatar/avatar.css +1 -0
  2. package/dist/atoms/avatar/avatar.d.ts +17 -0
  3. package/dist/atoms/avatar/avatar.js +2 -0
  4. package/dist/atoms/avatar/avatar.js.map +1 -0
  5. package/dist/atoms/avatar/avatar.module.js +3 -0
  6. package/dist/atoms/avatar/avatar.module.js.map +1 -0
  7. package/dist/atoms/avatar/index.d.ts +1 -0
  8. package/dist/atoms/avatar/index.js +1 -0
  9. package/dist/atoms/button/button.css +1 -18
  10. package/dist/atoms/button/button.d.ts +5 -5
  11. package/dist/atoms/button/button.js.map +1 -1
  12. package/dist/atoms/button/button.module.js +1 -0
  13. package/dist/atoms/button/button.module.js.map +1 -1
  14. package/dist/atoms/checkbox/checkbox.css +1 -119
  15. package/dist/atoms/checkbox/checkbox.module.js +1 -0
  16. package/dist/atoms/checkbox/checkbox.module.js.map +1 -1
  17. package/dist/atoms/clickable-area/clickable-area.d.ts +15 -0
  18. package/dist/atoms/clickable-area/clickable-area.js +2 -0
  19. package/dist/atoms/clickable-area/clickable-area.js.map +1 -0
  20. package/dist/atoms/clickable-area/index.d.ts +1 -0
  21. package/dist/atoms/clickable-area/index.js +1 -0
  22. package/dist/atoms/clickable-area/styles.css +1 -0
  23. package/dist/atoms/clickable-area/styles.module.js +3 -0
  24. package/dist/atoms/clickable-area/styles.module.js.map +1 -0
  25. package/dist/atoms/collapsible/collapsible.css +1 -0
  26. package/dist/atoms/collapsible/collapsible.d.ts +16 -0
  27. package/dist/atoms/collapsible/collapsible.js +2 -0
  28. package/dist/atoms/collapsible/collapsible.js.map +1 -0
  29. package/dist/atoms/collapsible/collapsible.module.js +3 -0
  30. package/dist/atoms/collapsible/collapsible.module.js.map +1 -0
  31. package/dist/atoms/collapsible/index.d.ts +1 -0
  32. package/dist/atoms/collapsible/index.js +1 -0
  33. package/dist/atoms/combobox/combobox.css +1 -302
  34. package/dist/atoms/combobox/combobox.d.ts +3 -3
  35. package/dist/atoms/combobox/combobox.module.js +1 -0
  36. package/dist/atoms/combobox/combobox.module.js.map +1 -1
  37. package/dist/atoms/combobox/index.d.ts +1 -0
  38. package/dist/atoms/context-menu/context-menu.css +1 -75
  39. package/dist/atoms/context-menu/context-menu.module.js +1 -0
  40. package/dist/atoms/context-menu/context-menu.module.js.map +1 -1
  41. package/dist/atoms/icon/icon.d.ts +2 -2
  42. package/dist/atoms/icon/icon.js.map +1 -1
  43. package/dist/atoms/icon-button/icon-button.css +1 -12
  44. package/dist/atoms/icon-button/icon-button.d.ts +3 -3
  45. package/dist/atoms/icon-button/icon-button.js.map +1 -1
  46. package/dist/atoms/icon-button/icon-button.module.js +1 -0
  47. package/dist/atoms/index.d.ts +8 -3
  48. package/dist/atoms/index.js +1 -1
  49. package/dist/atoms/input/input.css +1 -29
  50. package/dist/atoms/input/input.module.js +1 -0
  51. package/dist/atoms/input/input.module.js.map +1 -1
  52. package/dist/atoms/menu/index.d.ts +1 -0
  53. package/dist/atoms/menu/index.js +1 -0
  54. package/dist/atoms/menu/menu.css +1 -0
  55. package/dist/atoms/menu/menu.d.ts +69 -0
  56. package/dist/atoms/menu/menu.js +2 -0
  57. package/dist/atoms/menu/menu.js.map +1 -0
  58. package/dist/atoms/menu/menu.module.js +3 -0
  59. package/dist/atoms/menu/menu.module.js.map +1 -0
  60. package/dist/atoms/radio/radio.css +1 -142
  61. package/dist/atoms/radio/radio.module.js +1 -0
  62. package/dist/atoms/radio/radio.module.js.map +1 -1
  63. package/dist/atoms/switch/switch.css +1 -68
  64. package/dist/atoms/switch/switch.module.js +1 -0
  65. package/dist/atoms/switch/switch.module.js.map +1 -1
  66. package/dist/atoms/tabs/tabs.css +1 -92
  67. package/dist/atoms/tabs/tabs.d.ts +3 -3
  68. package/dist/atoms/tabs/tabs.module.js +1 -0
  69. package/dist/atoms/tabs/tabs.module.js.map +1 -1
  70. package/dist/atoms/text/text.css +1 -273
  71. package/dist/atoms/text/text.d.ts +3 -3
  72. package/dist/atoms/text/text.module.js +1 -0
  73. package/dist/atoms/text/text.module.js.map +1 -1
  74. package/dist/atoms/toast/toast.css +1 -151
  75. package/dist/atoms/toast/toast.module.js +1 -0
  76. package/dist/atoms/toast/toast.module.js.map +1 -1
  77. package/dist/atoms/tooltip/tooltip.css +1 -92
  78. package/dist/atoms/tooltip/tooltip.d.ts +3 -3
  79. package/dist/atoms/tooltip/tooltip.module.js +1 -0
  80. package/dist/atoms/tooltip/tooltip.module.js.map +1 -1
  81. package/dist/helpers/flex/flex.d.ts +45 -0
  82. package/dist/helpers/flex/flex.js +2 -0
  83. package/dist/helpers/flex/flex.js.map +1 -0
  84. package/dist/helpers/flex/index.d.ts +1 -0
  85. package/dist/helpers/flex/index.js +1 -0
  86. package/dist/helpers/flex/styles.css +1 -0
  87. package/dist/helpers/flex/styles.module.js +3 -0
  88. package/dist/helpers/flex/styles.module.js.map +1 -0
  89. package/dist/helpers/index.d.ts +4 -0
  90. package/dist/helpers/index.js +1 -0
  91. package/dist/helpers/portal/context/portal-config.js.map +1 -1
  92. package/dist/index.d.ts +10 -4
  93. package/dist/index.js +1 -1
  94. package/dist/internals/base-button/base-button.css +1 -262
  95. package/dist/internals/base-button/base-button.d.ts +2 -2
  96. package/dist/internals/base-button/base-button.js.map +1 -1
  97. package/dist/internals/base-button/base-button.module.js +1 -0
  98. package/dist/internals/base-button/base-button.module.js.map +1 -1
  99. package/dist/internals/base-dialog/base-dialog.css +1 -74
  100. package/dist/internals/base-dialog/base-dialog.module.js +1 -0
  101. package/dist/internals/base-field/base-field.css +1 -115
  102. package/dist/internals/base-field/base-field.module.js +1 -0
  103. package/dist/internals/base-field/base-field.module.js.map +1 -1
  104. package/dist/internals/base-svg/base-svg.css +1 -137
  105. package/dist/internals/base-svg/base-svg.d.ts +2 -2
  106. package/dist/internals/base-svg/base-svg.js.map +1 -1
  107. package/dist/internals/base-svg/base-svg.module.js +1 -0
  108. package/dist/internals/base-svg/base-svg.module.js.map +1 -1
  109. package/dist/providers/index.d.ts +0 -3
  110. package/dist/providers/index.js +1 -1
  111. package/dist/providers/toast-provider/toast-provider.css +1 -13
  112. package/dist/providers/toast-provider/toast-provider.module.js +1 -0
  113. package/dist/providers/toast-provider/toast-provider.module.js.map +1 -1
  114. package/package.json +12 -18
@@ -0,0 +1,69 @@
1
+ import React from "react";
2
+ import { MenuTriggerProps } from "@base-ui/react";
3
+
4
+ //#region src/atoms/menu/menu.d.ts
5
+ type MenuMode = "normal" | "radio" | "checkbox";
6
+ type BaseItem = {
7
+ key: string;
8
+ label: React.ReactNode;
9
+ disabled?: boolean;
10
+ className?: string;
11
+ };
12
+ type NormalItem = BaseItem & {
13
+ kind: "item";
14
+ onClick?: () => void;
15
+ };
16
+ type SubmenuItem<T> = BaseItem & {
17
+ kind: "submenu";
18
+ items: Array<T | SeparatorItem | GroupItem<T> | SubmenuItem<T>>;
19
+ };
20
+ type RadioItem = BaseItem & {
21
+ kind: "item";
22
+ value: string;
23
+ };
24
+ type CheckboxItem = BaseItem & {
25
+ kind: "item";
26
+ checked?: boolean;
27
+ onCheckedChange?: (checked: boolean) => void;
28
+ };
29
+ type SeparatorItem = {
30
+ kind: "separator";
31
+ key: string;
32
+ };
33
+ type GroupItem<T> = {
34
+ kind: "group";
35
+ key: string;
36
+ label: React.ReactNode;
37
+ items: T[];
38
+ };
39
+ type MenuItemsByMode<M extends MenuMode> = M extends "normal" ? Array<NormalItem | SeparatorItem | GroupItem<NormalItem> | SubmenuItem<NormalItem>> : M extends "radio" ? Array<RadioItem | SeparatorItem | GroupItem<RadioItem> | SubmenuItem<RadioItem>> : Array<CheckboxItem | SeparatorItem | GroupItem<CheckboxItem> | SubmenuItem<CheckboxItem>>;
40
+ type MenuProps<M extends MenuMode> = {
41
+ mode?: M;
42
+ items: MenuItemsByMode<M>;
43
+ children: React.ReactNode;
44
+ classNames?: {
45
+ trigger?: string;
46
+ popup?: string;
47
+ positioner?: string;
48
+ check?: string;
49
+ item?: string;
50
+ separator?: string;
51
+ group?: string;
52
+ groupLabel?: string;
53
+ radioItem?: string;
54
+ radioItemIndicator?: string;
55
+ checkboxItem?: string;
56
+ checkboxItemIndicator?: string;
57
+ };
58
+ openOnHover?: MenuTriggerProps["openOnHover"];
59
+ };
60
+ declare function Menu$1<M extends MenuMode>({
61
+ mode,
62
+ items,
63
+ classNames,
64
+ children,
65
+ openOnHover
66
+ }: MenuProps<M>): import("react/jsx-runtime").JSX.Element;
67
+ //#endregion
68
+ export { BaseItem, CheckboxItem, GroupItem, Menu$1 as Menu, MenuItemsByMode, MenuMode, MenuProps, NormalItem, RadioItem, SeparatorItem, SubmenuItem };
69
+ //# sourceMappingURL=menu.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{usePortalConfig as e}from"../../helpers/portal/context/hooks.js";import{Icon as t}from"../icon/icon.js";import"../icon/index.js";import"../../helpers/index.js";import n from"./menu.module.js";import r from"clsx";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Menu as o}from"@base-ui/react";import{mdiCheck as s,mdiChevronRight as c}from"@mdi/js";function l({mode:l,items:u,classNames:d,children:f,openOnHover:p=!1}){let m=e=>{switch(e.kind){case`separator`:return i(o.Separator,{"data-slot":`menu-separator`,className:r(n.separator,d?.separator)},e.key);case`submenu`:return a(o.SubmenuRoot,{children:[a(o.SubmenuTrigger,{disabled:e.disabled,"data-slot":`menu-submenu-trigger`,className:r(n.item,n[`submenu-trigger`],d?.item),children:[e.label,i(`span`,{className:n[`submenu-arrow`],children:i(t,{data:c})})]}),i(o.Portal,{container:g,children:i(o.Positioner,{"data-slot":`menu-submenu-positioner`,className:r(n.positioner,d?.positioner),children:i(o.Popup,{"data-slot":`menu-submenu-popup`,className:r(n.popup,d?.popup),children:l===`radio`?i(o.RadioGroup,{children:e.items.map(m)}):e.items.map(m)})})})]},e.key);case`group`:return a(o.Group,{"data-slot":`menu-group`,className:r(n.group,d?.group),children:[i(o.GroupLabel,{"data-slot":`menu-group-label`,className:r(n[`group-label`],d?.groupLabel),children:e.label}),e.items.map(m)]},e.key);case`item`:return l===`radio`?a(o.RadioItem,{value:e.value,disabled:e.disabled,"data-slot":`menu-radio-item`,className:r(n.item,n[`radio-item`],d?.item,d?.radioItem,e.className),children:[i(o.RadioItemIndicator,{"data-slot":`menu-radio-item-indicator`,className:r(n[`radio-item-indicator`],d?.radioItemIndicator),children:i(t,{data:s})}),e.label]},e.key):l===`checkbox`?a(o.CheckboxItem,{checked:e.checked,onCheckedChange:e.onCheckedChange,disabled:e.disabled,"data-slot":`menu-checkbox-item`,className:r(n.item,n[`checkbox-item`],d?.item,d?.checkboxItem,e.className),children:[i(o.CheckboxItemIndicator,{"data-slot":`menu-checkbox-item-indicator`,className:r(n[`checkbox-item-indicator`],d?.checkboxItemIndicator),children:i(t,{"data-slot":`menu-check`,className:r(n.check,d?.check),data:s})}),e.label]},e.key):i(o.Item,{disabled:e.disabled,"data-slot":`menu-item`,className:r(n.item,d?.item,e.className),onClick:e.onClick,children:e.label},e.key)}},{resolveContainer:h}=e(),g=h();return a(o.Root,{children:[i(o.Trigger,{openOnHover:p,"data-slot":`menu-trigger`,className:r(n.trigger,d?.trigger),children:f}),i(o.Portal,{container:g,children:i(o.Positioner,{"data-slot":`menu-positioner`,className:r(n.positioner,d?.positioner),children:i(o.Popup,{"data-slot":`menu-popup`,className:r(n.popup,d?.popup),children:l===`radio`?i(o.RadioGroup,{children:u.map(m)}):u.map(m)})})})]})}export{l as Menu};
2
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","names":["Menu","BaseUiMenu","styles"],"sources":["../../../src/atoms/menu/menu.tsx"],"sourcesContent":["import {\n Menu as BaseUiMenu,\n type MenuTriggerProps as BaseUiMenuTriggerProps,\n} from \"@base-ui/react\";\nimport { mdiCheck, mdiChevronRight } from \"@mdi/js\";\nimport clsx from \"clsx\";\nimport type React from \"react\";\nimport { usePortalConfig } from \"../../helpers\";\nimport { Icon } from \"../icon\";\nimport styles from \"./menu.module.css\";\n\n// TODO: BIG TODO!!!!! fix size of the check icons , no layout shifts should happen while checking.\n\nexport type MenuMode = \"normal\" | \"radio\" | \"checkbox\";\n\nexport type BaseItem = {\n key: string;\n label: React.ReactNode;\n disabled?: boolean;\n className?: string;\n};\n\nexport type NormalItem = BaseItem & {\n kind: \"item\";\n onClick?: () => void;\n};\n\nexport type SubmenuItem<T> = BaseItem & {\n kind: \"submenu\";\n items: Array<T | SeparatorItem | GroupItem<T> | SubmenuItem<T>>;\n};\n\nexport type RadioItem = BaseItem & {\n kind: \"item\";\n value: string;\n};\n\nexport type CheckboxItem = BaseItem & {\n kind: \"item\";\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n};\n\nexport type SeparatorItem = {\n kind: \"separator\";\n key: string;\n};\n\nexport type GroupItem<T> = {\n kind: \"group\";\n key: string;\n label: React.ReactNode;\n items: T[];\n};\n\nexport type MenuItemsByMode<M extends MenuMode> = M extends \"normal\"\n ? Array<\n | NormalItem\n | SeparatorItem\n | GroupItem<NormalItem>\n | SubmenuItem<NormalItem>\n >\n : M extends \"radio\"\n ? Array<\n | RadioItem\n | SeparatorItem\n | GroupItem<RadioItem>\n | SubmenuItem<RadioItem>\n >\n : Array<\n | CheckboxItem\n | SeparatorItem\n | GroupItem<CheckboxItem>\n | SubmenuItem<CheckboxItem>\n >;\n\nexport type MenuProps<M extends MenuMode> = {\n mode?: M;\n items: MenuItemsByMode<M>;\n children: React.ReactNode;\n classNames?: {\n trigger?: string;\n popup?: string;\n positioner?: string;\n check?: string;\n item?: string;\n separator?: string;\n group?: string;\n groupLabel?: string;\n radioItem?: string;\n radioItemIndicator?: string;\n checkboxItem?: string;\n checkboxItemIndicator?: string;\n };\n openOnHover?: BaseUiMenuTriggerProps[\"openOnHover\"];\n};\n\nexport function Menu<M extends MenuMode>({\n mode,\n items,\n classNames,\n children,\n openOnHover = false,\n}: MenuProps<M>) {\n const renderItem = (item: any) => {\n switch (item.kind) {\n case \"separator\":\n return (\n <BaseUiMenu.Separator\n key={item.key}\n data-slot=\"menu-separator\"\n className={clsx(styles[\"separator\"], classNames?.separator)}\n />\n );\n\n case \"submenu\":\n return (\n <BaseUiMenu.SubmenuRoot key={item.key}>\n <BaseUiMenu.SubmenuTrigger\n disabled={item.disabled}\n data-slot=\"menu-submenu-trigger\"\n className={clsx(\n styles[\"item\"],\n styles[\"submenu-trigger\"],\n classNames?.item,\n )}\n >\n {item.label}\n <span className={styles[\"submenu-arrow\"]}>\n <Icon data={mdiChevronRight} />\n </span>\n </BaseUiMenu.SubmenuTrigger>\n\n <BaseUiMenu.Portal container={portalContainer}>\n <BaseUiMenu.Positioner\n data-slot=\"menu-submenu-positioner\"\n className={clsx(styles[\"positioner\"], classNames?.positioner)}\n >\n <BaseUiMenu.Popup\n data-slot=\"menu-submenu-popup\"\n className={clsx(styles[\"popup\"], classNames?.popup)}\n >\n {mode === \"radio\" ? (\n <BaseUiMenu.RadioGroup>\n {item.items.map(renderItem)}\n </BaseUiMenu.RadioGroup>\n ) : (\n item.items.map(renderItem)\n )}\n </BaseUiMenu.Popup>\n </BaseUiMenu.Positioner>\n </BaseUiMenu.Portal>\n </BaseUiMenu.SubmenuRoot>\n );\n\n case \"group\":\n return (\n <BaseUiMenu.Group\n key={item.key}\n data-slot=\"menu-group\"\n className={clsx(styles[\"group\"], classNames?.group)}\n >\n <BaseUiMenu.GroupLabel\n data-slot=\"menu-group-label\"\n className={clsx(styles[\"group-label\"], classNames?.groupLabel)}\n >\n {item.label}\n </BaseUiMenu.GroupLabel>\n {item.items.map(renderItem)}\n </BaseUiMenu.Group>\n );\n\n case \"item\":\n if (mode === \"radio\") {\n return (\n <BaseUiMenu.RadioItem\n key={item.key}\n value={item.value}\n disabled={item.disabled}\n data-slot=\"menu-radio-item\"\n className={clsx(\n styles[\"item\"],\n styles[\"radio-item\"],\n classNames?.item,\n classNames?.radioItem,\n item.className,\n )}\n >\n <BaseUiMenu.RadioItemIndicator\n data-slot=\"menu-radio-item-indicator\"\n className={clsx(\n styles[\"radio-item-indicator\"],\n classNames?.radioItemIndicator,\n )}\n >\n <Icon data={mdiCheck} />\n </BaseUiMenu.RadioItemIndicator>\n {item.label}\n </BaseUiMenu.RadioItem>\n );\n }\n\n if (mode === \"checkbox\") {\n return (\n <BaseUiMenu.CheckboxItem\n key={item.key}\n checked={item.checked}\n onCheckedChange={item.onCheckedChange}\n disabled={item.disabled}\n data-slot=\"menu-checkbox-item\"\n className={clsx(\n styles[\"item\"],\n styles[\"checkbox-item\"],\n classNames?.item,\n classNames?.checkboxItem,\n item.className,\n )}\n >\n <BaseUiMenu.CheckboxItemIndicator\n data-slot=\"menu-checkbox-item-indicator\"\n className={clsx(\n styles[\"checkbox-item-indicator\"],\n classNames?.checkboxItemIndicator,\n )}\n >\n <Icon\n data-slot=\"menu-check\"\n className={clsx(styles[\"check\"], classNames?.check)}\n data={mdiCheck}\n />\n </BaseUiMenu.CheckboxItemIndicator>\n {item.label}\n </BaseUiMenu.CheckboxItem>\n );\n }\n\n return (\n <BaseUiMenu.Item\n key={item.key}\n disabled={item.disabled}\n data-slot=\"menu-item\"\n className={clsx(styles[\"item\"], classNames?.item, item.className)}\n onClick={item.onClick}\n >\n {item.label}\n </BaseUiMenu.Item>\n );\n }\n };\n\n const { resolveContainer } = usePortalConfig();\n const portalContainer = resolveContainer();\n\n return (\n <BaseUiMenu.Root>\n <BaseUiMenu.Trigger\n openOnHover={openOnHover}\n data-slot=\"menu-trigger\"\n className={clsx(styles[\"trigger\"], classNames?.trigger)}\n >\n {children}\n </BaseUiMenu.Trigger>\n <BaseUiMenu.Portal container={portalContainer}>\n <BaseUiMenu.Positioner\n data-slot=\"menu-positioner\"\n className={clsx(styles[\"positioner\"], classNames?.positioner)}\n >\n <BaseUiMenu.Popup\n data-slot=\"menu-popup\"\n className={clsx(styles[\"popup\"], classNames?.popup)}\n >\n {mode === \"radio\" ? (\n <BaseUiMenu.RadioGroup>\n {items.map(renderItem)}\n </BaseUiMenu.RadioGroup>\n ) : (\n items.map(renderItem)\n )}\n </BaseUiMenu.Popup>\n </BaseUiMenu.Positioner>\n </BaseUiMenu.Portal>\n </BaseUiMenu.Root>\n );\n}\n"],"mappings":"2WAiGA,SAAgBA,EAAyB,CACvC,OACA,QACA,aACA,WACA,cAAc,IACC,CACf,IAAM,EAAc,GAAc,CAChC,OAAQ,EAAK,KAAb,CACE,IAAK,YACH,OACE,EAACC,EAAW,UAAZ,CAEE,YAAU,iBACV,UAAW,EAAKC,EAAO,UAAc,GAAY,SAAS,CAC3D,EAHM,EAAK,GAGX,EAGL,IAAK,UACH,OACE,EAACD,EAAW,YAAZ,CAAA,SAAA,CACE,EAACA,EAAW,eAAZ,CACE,SAAU,EAAK,SACf,YAAU,uBACV,UAAW,EACTC,EAAO,KACPA,EAAO,mBACP,GAAY,IACd,WAPF,CASG,EAAK,MACN,EAAC,OAAD,CAAM,UAAWA,EAAO,0BACtB,EAAC,EAAD,CAAM,KAAM,CAAkB,CAAA,CAC1B,CAAA,CACmB,IAE3B,EAACD,EAAW,OAAZ,CAAmB,UAAW,WAC5B,EAACA,EAAW,WAAZ,CACE,YAAU,0BACV,UAAW,EAAKC,EAAO,WAAe,GAAY,UAAU,WAE5D,EAACD,EAAW,MAAZ,CACE,YAAU,qBACV,UAAW,EAAKC,EAAO,MAAU,GAAY,KAAK,WAEjD,IAAS,QACR,EAACD,EAAW,WAAZ,CAAA,SACG,EAAK,MAAM,IAAI,CAAU,CACL,CAAA,EAEvB,EAAK,MAAM,IAAI,CAAU,CAEX,CAAA,CACG,CAAA,CACN,CAAA,CACG,CAAA,EAnCK,EAAK,GAmCV,EAG5B,IAAK,QACH,OACE,EAACA,EAAW,MAAZ,CAEE,YAAU,aACV,UAAW,EAAKC,EAAO,MAAU,GAAY,KAAK,WAHpD,CAKE,EAACD,EAAW,WAAZ,CACE,YAAU,mBACV,UAAW,EAAKC,EAAO,eAAgB,GAAY,UAAU,WAE5D,EAAK,KACe,CAAA,EACtB,EAAK,MAAM,IAAI,CAAU,CACV,GAXX,EAAK,GAWM,EAGtB,IAAK,OAgEH,OA/DI,IAAS,QAET,EAACD,EAAW,UAAZ,CAEE,MAAO,EAAK,MACZ,SAAU,EAAK,SACf,YAAU,kBACV,UAAW,EACTC,EAAO,KACPA,EAAO,cACP,GAAY,KACZ,GAAY,UACZ,EAAK,SACP,WAXF,CAaE,EAACD,EAAW,mBAAZ,CACE,YAAU,4BACV,UAAW,EACTC,EAAO,wBACP,GAAY,kBACd,WAEA,EAAC,EAAD,CAAM,KAAM,CAAW,CAAA,CACM,CAAA,EAC9B,EAAK,KACc,GAtBf,EAAK,GAsBU,EAItB,IAAS,WAET,EAACD,EAAW,aAAZ,CAEE,QAAS,EAAK,QACd,gBAAiB,EAAK,gBACtB,SAAU,EAAK,SACf,YAAU,qBACV,UAAW,EACTC,EAAO,KACPA,EAAO,iBACP,GAAY,KACZ,GAAY,aACZ,EAAK,SACP,WAZF,CAcE,EAACD,EAAW,sBAAZ,CACE,YAAU,+BACV,UAAW,EACTC,EAAO,2BACP,GAAY,qBACd,WAEA,EAAC,EAAD,CACE,YAAU,aACV,UAAW,EAAKA,EAAO,MAAU,GAAY,KAAK,EAClD,KAAM,CACP,CAAA,CAC+B,CAAA,EACjC,EAAK,KACiB,GA3BlB,EAAK,GA2Ba,EAK3B,EAACD,EAAW,KAAZ,CAEE,SAAU,EAAK,SACf,YAAU,YACV,UAAW,EAAKC,EAAO,KAAS,GAAY,KAAM,EAAK,SAAS,EAChE,QAAS,EAAK,iBAEb,EAAK,KACS,EAPV,EAAK,GAOK,CAEvB,CACF,EAEM,CAAE,oBAAqB,EAAgB,EACvC,EAAkB,EAAiB,EAEzC,OACE,EAACD,EAAW,KAAZ,CAAA,SAAA,CACE,EAACA,EAAW,QAAZ,CACe,cACb,YAAU,eACV,UAAW,EAAKC,EAAO,QAAY,GAAY,OAAO,EAErD,UACiB,CAAA,EACpB,EAACD,EAAW,OAAZ,CAAmB,UAAW,WAC5B,EAACA,EAAW,WAAZ,CACE,YAAU,kBACV,UAAW,EAAKC,EAAO,WAAe,GAAY,UAAU,WAE5D,EAACD,EAAW,MAAZ,CACE,YAAU,aACV,UAAW,EAAKC,EAAO,MAAU,GAAY,KAAK,WAEjD,IAAS,QACR,EAACD,EAAW,WAAZ,CAAA,SACG,EAAM,IAAI,CAAU,CACA,CAAA,EAEvB,EAAM,IAAI,CAAU,CAEN,CAAA,CACG,CAAA,CACN,CAAA,CACJ,CAAA,CAAA,CAErB"}
@@ -0,0 +1,3 @@
1
+ import './menu.css';
2
+ var e={check:`geRtDa_check`,"checkbox-item":`geRtDa_checkbox-item`,"checkbox-item-indicator":`geRtDa_checkbox-item-indicator`,group:`geRtDa_group`,"group-label":`geRtDa_group-label`,item:`geRtDa_item`,popup:`geRtDa_popup`,positioner:`geRtDa_positioner`,"radio-item":`geRtDa_radio-item`,"radio-item-indicator":`geRtDa_radio-item-indicator`,separator:`geRtDa_separator`,"submenu-arrow":`geRtDa_submenu-arrow`,"submenu-trigger":`geRtDa_submenu-trigger`,trigger:`geRtDa_trigger`};export{e as default};
3
+ //# sourceMappingURL=menu.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.module.js","names":[],"sources":["../../../src/atoms/menu/menu.module.css"],"sourcesContent":[".trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n outline: 0;\n font-family: inherit;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1;\n white-space: nowrap;\n border: none;\n -webkit-user-select: none;\n user-select: none;\n background-color: transparent;\n}\n\n.positioner {\n outline: 0;\n}\n\n.popup {\n box-sizing: border-box;\n font-family: var(--typography-typeface-ltr);\n outline: none;\n width: 100%;\n padding-block: var(--spacing-xs);\n border: 1px solid var(--color-border-primary);\n border-radius: var(--radius-md);\n background-color: var(--color-surface-base);\n color: var(--color-content-neutral-base);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);\n transform-origin: var(--transform-origin);\n transition:\n transform 100ms ease-out,\n opacity 100ms ease-out;\n\n &[data-starting-style],\n &[data-ending-style] {\n opacity: 0;\n transform: scale(0.98);\n }\n}\n\n.item {\n font-family: var(--typography-typeface-ltr);\n outline: none;\n cursor: default;\n user-select: none;\n padding-block: var(--spacing-sm);\n padding-inline: var(--spacing-md);\n display: flex;\n font-size: 0.875rem;\n line-height: 1.4;\n border-radius: var(--radius-sm);\n color: var(--color-content-neutral-base);\n\n &[data-highlighted] {\n position: relative;\n z-index: 0;\n color: var(--color-on-brand);\n }\n\n &[data-highlighted]::before {\n content: \"\";\n position: absolute;\n inset: 0;\n inset-inline: var(--spacing-xs);\n z-index: -1;\n border-radius: var(--radius-sm);\n background-color: var(--color-action-brand-base);\n }\n\n &[data-disabled] {\n color: var(--color-content-neutral-muted);\n pointer-events: none;\n }\n}\n\n.separator {\n margin-block: var(--spacing-xs);\n margin-inline: var(--spacing-sm);\n height: 1px;\n background-color: var(--color-border-tertiary);\n}\n\n.group-label {\n font-family: var(--typography-typeface-ltr);\n padding-block: var(--spacing-xxs);\n padding-inline: var(--spacing-md);\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--color-content-neutral-tertiary);\n}\n\n.group {\n display: flex;\n flex-direction: column;\n}\n\n.radio-item {\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.radio-item-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n margin-inline-end: var(--spacing-sm);\n}\n\n.checkbox-item {\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.checkbox-item-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n margin-inline-end: var(--spacing-sm);\n}\n\n.check {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.submenu-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.submenu-arrow {\n margin-left: auto;\n font-size: 0.75rem;\n opacity: 0.6;\n\n width: 0.875rem;\n height: 0.875rem;\n}\n"],"mappings":""}
@@ -1,142 +1 @@
1
- .FLTLnW_group {
2
- gap: var(--spacing-xs);
3
- flex-direction: column;
4
- display: flex;
5
- }
6
-
7
- .FLTLnW_group[data-disabled] {
8
- cursor: not-allowed;
9
- opacity: .5;
10
-
11
- & * {
12
- cursor: not-allowed;
13
- }
14
- }
15
-
16
- .FLTLnW_root {
17
- --radio-size: 1rem;
18
- --radio-bg: transparent;
19
- --radio-border: var(--color-border-primary);
20
- --radio-dot-color: transparent;
21
- --radio-gap: var(--spacing-xs);
22
- --radio-label-color: var(--color-content-neutral-base);
23
- font-family: var(--typography-typeface-ltr);
24
- align-items: center;
25
- gap: var(--radio-gap);
26
- display: flex;
27
- position: relative;
28
- }
29
-
30
- .FLTLnW_control {
31
- box-sizing: border-box;
32
- width: var(--radio-size);
33
- height: var(--radio-size);
34
- background-color: var(--radio-bg);
35
- box-shadow: 0 0 0 1px var(--radio-border) inset;
36
- cursor: pointer;
37
- border: none;
38
- border-radius: 9999px;
39
- flex-shrink: 0;
40
- justify-content: center;
41
- align-items: center;
42
- padding: 0;
43
- transition: background-color .2s, box-shadow .2s;
44
- display: flex;
45
- }
46
-
47
- .FLTLnW_root[data-size="sm"] {
48
- --radio-size: .875rem;
49
- --radio-gap: var(--spacing-xs);
50
- --radio-label-font-size: var(--typography-body-2-size);
51
- --radio-label-line-height: var(--typography-body-2-height);
52
- --radio-label-font-weight: var(--typography-body-2-weight);
53
- }
54
-
55
- .FLTLnW_root[data-size="md"], .FLTLnW_root:not([data-size]) {
56
- --radio-size: 1rem;
57
- --radio-gap: var(--spacing-xs);
58
- --radio-label-font-size: var(--typography-body-1-size);
59
- --radio-label-line-height: var(--typography-body-1-height);
60
- --radio-label-font-weight: var(--typography-body-1-weight);
61
- }
62
-
63
- .FLTLnW_root[data-size="lg"] {
64
- --radio-size: 1.25rem;
65
- --radio-gap: var(--spacing-sm);
66
- --radio-label-font-size: var(--typography-body-1-size);
67
- --radio-label-line-height: var(--typography-body-1-height);
68
- --radio-label-font-weight: var(--typography-body-1-weight);
69
- }
70
-
71
- .FLTLnW_control[data-checked]:not([data-invalid]) {
72
- --radio-bg: var(--color-action-neutral-base);
73
- --radio-border: transparent;
74
- --radio-dot-color: var(--color-on-neutral);
75
- }
76
-
77
- .FLTLnW_control:focus-visible {
78
- outline-style: solid;
79
- outline-width: var(--stroke-focus-ring);
80
- outline-color: var(--color-action-info-base);
81
- outline-offset: var(--spacing-xxs);
82
- }
83
-
84
- .FLTLnW_root[data-disabled] {
85
- cursor: not-allowed;
86
- opacity: .5;
87
-
88
- & * {
89
- cursor: not-allowed;
90
- }
91
- }
92
-
93
- .FLTLnW_root[data-invalid] {
94
- --radio-border: var(--color-negative);
95
- --radio-label-color: var(--color-content-negative-base);
96
- }
97
-
98
- .FLTLnW_control[data-invalid][data-checked] {
99
- --radio-bg: var(--color-negative);
100
- --radio-dot-color: var(--color-on-negative);
101
- }
102
-
103
- .FLTLnW_indicator {
104
- justify-content: center;
105
- align-items: center;
106
- width: 100%;
107
- height: 100%;
108
- display: flex;
109
- }
110
-
111
- .FLTLnW_indicator[data-unchecked] {
112
- display: none;
113
- }
114
-
115
- .FLTLnW_indicator:before {
116
- content: "";
117
- background-color: var(--radio-dot-color);
118
- border-radius: 9999px;
119
- width: 45%;
120
- height: 45%;
121
- transition: background-color .2s;
122
- display: block;
123
- }
124
-
125
- .FLTLnW_label {
126
- font-size: var(--radio-label-font-size, var(--typography-body-2-size));
127
- line-height: var(--radio-label-line-height, var(--typography-body-2-height));
128
- font-weight: var(--radio-label-font-weight, var(--typography-body-2-weight));
129
- color: var(--radio-label-color);
130
- }
131
-
132
- .FLTLnW_label--hidden {
133
- clip: rect(0, 0, 0, 0);
134
- white-space: nowrap;
135
- border: 0;
136
- width: 1px;
137
- height: 1px;
138
- margin: -1px;
139
- padding: 0;
140
- position: absolute;
141
- overflow: hidden;
142
- }
1
+ .FLTLnW_group{gap:var(--spacing-xs);flex-direction:column;display:flex}.FLTLnW_group[data-disabled]{cursor:not-allowed;opacity:.5;& *{cursor:not-allowed}}.FLTLnW_root{--radio-size:1rem;--radio-bg:transparent;--radio-border:var(--color-border-primary);--radio-dot-color:transparent;--radio-gap:var(--spacing-xs);--radio-label-color:var(--color-content-neutral-base);font-family:var(--typography-typeface-ltr);align-items:center;gap:var(--radio-gap);display:flex;position:relative}.FLTLnW_control{box-sizing:border-box;width:var(--radio-size);height:var(--radio-size);background-color:var(--radio-bg);box-shadow:0 0 0 1px var(--radio-border) inset;cursor:pointer;border:none;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .2s,box-shadow .2s;display:flex}.FLTLnW_root[data-size=sm]{--radio-size:.875rem;--radio-gap:var(--spacing-xs);--radio-label-font-size:var(--typography-body-2-size);--radio-label-line-height:var(--typography-body-2-height);--radio-label-font-weight:var(--typography-body-2-weight)}.FLTLnW_root[data-size=md],.FLTLnW_root:not([data-size]){--radio-size:1rem;--radio-gap:var(--spacing-xs);--radio-label-font-size:var(--typography-body-1-size);--radio-label-line-height:var(--typography-body-1-height);--radio-label-font-weight:var(--typography-body-1-weight)}.FLTLnW_root[data-size=lg]{--radio-size:1.25rem;--radio-gap:var(--spacing-sm);--radio-label-font-size:var(--typography-body-1-size);--radio-label-line-height:var(--typography-body-1-height);--radio-label-font-weight:var(--typography-body-1-weight)}.FLTLnW_control[data-checked]:not([data-invalid]){--radio-bg:var(--color-action-neutral-base);--radio-border:transparent;--radio-dot-color:var(--color-on-neutral)}.FLTLnW_control:focus-visible{outline-style:solid;outline-width:var(--stroke-focus-ring);outline-color:var(--color-action-info-base);outline-offset:var(--spacing-xxs)}.FLTLnW_root[data-disabled]{cursor:not-allowed;opacity:.5;& *{cursor:not-allowed}}.FLTLnW_root[data-invalid]{--radio-border:var(--color-negative);--radio-label-color:var(--color-content-negative-base)}.FLTLnW_control[data-invalid][data-checked]{--radio-bg:var(--color-negative);--radio-dot-color:var(--color-on-negative)}.FLTLnW_indicator{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.FLTLnW_indicator[data-unchecked]{display:none}.FLTLnW_indicator:before{content:"";background-color:var(--radio-dot-color);border-radius:9999px;width:45%;height:45%;transition:background-color .2s;display:block}.FLTLnW_label{font-size:var(--radio-label-font-size,var(--typography-body-2-size));line-height:var(--radio-label-line-height,var(--typography-body-2-height));font-weight:var(--radio-label-font-weight,var(--typography-body-2-weight));color:var(--radio-label-color)}.FLTLnW_label--hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
@@ -1,2 +1,3 @@
1
+ import './radio.css';
1
2
  var e={control:`FLTLnW_control`,group:`FLTLnW_group`,indicator:`FLTLnW_indicator`,label:`FLTLnW_label`,"label--hidden":`FLTLnW_label--hidden`,root:`FLTLnW_root`};export{e as default};
2
3
  //# sourceMappingURL=radio.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.module.js","names":[],"sources":["../../../src/atoms/radio/radio.module.css"],"sourcesContent":["/* ─── RadioGroup ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.group[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n & * {\n cursor: not-allowed;\n }\n}\n\n/* ─── Radio Item ─────────────────────────────────────────────────────────────── */\n\n.root {\n --radio-size: 1rem;\n --radio-bg: transparent;\n --radio-border: var(--color-border-primary);\n --radio-dot-color: transparent;\n --radio-gap: var(--spacing-xs);\n --radio-label-color: var(--color-content-neutral-base);\n font-family: var(--typography-typeface-ltr);\n display: flex;\n align-items: center;\n position: relative;\n gap: var(--radio-gap);\n}\n\n.control {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--radio-size);\n height: var(--radio-size);\n background-color: var(--radio-bg);\n box-shadow: 0 0 0 1px var(--radio-border) inset;\n border-radius: 9999px;\n border: none;\n cursor: pointer;\n padding: 0;\n transition:\n background-color 0.2s,\n box-shadow 0.2s;\n}\n\n/* Sizes — mirrors Checkbox sizing tokens */\n\n.root[data-size=\"sm\"] {\n --radio-size: 0.875rem;\n --radio-gap: var(--spacing-xs);\n --radio-label-font-size: var(--typography-body-2-size);\n --radio-label-line-height: var(--typography-body-2-height);\n --radio-label-font-weight: var(--typography-body-2-weight);\n}\n\n.root[data-size=\"md\"],\n.root:not([data-size]) {\n --radio-size: 1rem;\n --radio-gap: var(--spacing-xs);\n --radio-label-font-size: var(--typography-body-1-size);\n --radio-label-line-height: var(--typography-body-1-height);\n --radio-label-font-weight: var(--typography-body-1-weight);\n}\n\n.root[data-size=\"lg\"] {\n --radio-size: 1.25rem;\n --radio-gap: var(--spacing-sm);\n --radio-label-font-size: var(--typography-body-1-size);\n --radio-label-line-height: var(--typography-body-1-height);\n --radio-label-font-weight: var(--typography-body-1-weight);\n}\n\n/* Checked state */\n\n.control[data-checked]:not([data-invalid]) {\n --radio-bg: var(--color-action-neutral-base);\n --radio-border: transparent;\n --radio-dot-color: var(--color-on-neutral);\n}\n\n/* Focus */\n\n.control:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n/* Disabled — scoped to item root, mirrors group-level disabled */\n\n.root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n & * {\n cursor: not-allowed;\n }\n}\n\n/* Invalid */\n\n.root[data-invalid] {\n --radio-border: var(--color-negative);\n --radio-label-color: var(--color-content-negative-base);\n}\n\n.control[data-invalid][data-checked] {\n --radio-bg: var(--color-negative);\n --radio-dot-color: var(--color-on-negative);\n}\n\n/* ─── Indicator (CSS dot) ─────────────────────────────────────────────────────── */\n\n.indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.indicator[data-unchecked] {\n display: none;\n}\n\n.indicator::before {\n content: \"\";\n display: block;\n width: 45%; /* proportional dot — scales with --radio-size */\n height: 45%;\n border-radius: 9999px;\n background-color: var(--radio-dot-color);\n transition: background-color 0.2s;\n}\n\n/* ─── Label ───────────────────────────────────────────────────────────────────── */\n\n.label {\n font-size: var(--radio-label-font-size, var(--typography-body-2-size));\n line-height: var(--radio-label-line-height, var(--typography-body-2-height));\n font-weight: var(--radio-label-font-weight, var(--typography-body-2-weight));\n color: var(--radio-label-color);\n}\n\n.label--hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":"AAYA,IAAA,EAAE,CAAA,QAAA,iBAAA,MAAA,eAAA,UAAA,mBAAA,MAAA,eAAA,gBAAA,uBAAA,KAAA,aAAA"}
1
+ {"version":3,"file":"radio.module.js","names":[],"sources":["../../../src/atoms/radio/radio.module.css"],"sourcesContent":["/* ─── RadioGroup ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.group[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n & * {\n cursor: not-allowed;\n }\n}\n\n/* ─── Radio Item ─────────────────────────────────────────────────────────────── */\n\n.root {\n --radio-size: 1rem;\n --radio-bg: transparent;\n --radio-border: var(--color-border-primary);\n --radio-dot-color: transparent;\n --radio-gap: var(--spacing-xs);\n --radio-label-color: var(--color-content-neutral-base);\n font-family: var(--typography-typeface-ltr);\n display: flex;\n align-items: center;\n position: relative;\n gap: var(--radio-gap);\n}\n\n.control {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--radio-size);\n height: var(--radio-size);\n background-color: var(--radio-bg);\n box-shadow: 0 0 0 1px var(--radio-border) inset;\n border-radius: 9999px;\n border: none;\n cursor: pointer;\n padding: 0;\n transition:\n background-color 0.2s,\n box-shadow 0.2s;\n}\n\n/* Sizes — mirrors Checkbox sizing tokens */\n\n.root[data-size=\"sm\"] {\n --radio-size: 0.875rem;\n --radio-gap: var(--spacing-xs);\n --radio-label-font-size: var(--typography-body-2-size);\n --radio-label-line-height: var(--typography-body-2-height);\n --radio-label-font-weight: var(--typography-body-2-weight);\n}\n\n.root[data-size=\"md\"],\n.root:not([data-size]) {\n --radio-size: 1rem;\n --radio-gap: var(--spacing-xs);\n --radio-label-font-size: var(--typography-body-1-size);\n --radio-label-line-height: var(--typography-body-1-height);\n --radio-label-font-weight: var(--typography-body-1-weight);\n}\n\n.root[data-size=\"lg\"] {\n --radio-size: 1.25rem;\n --radio-gap: var(--spacing-sm);\n --radio-label-font-size: var(--typography-body-1-size);\n --radio-label-line-height: var(--typography-body-1-height);\n --radio-label-font-weight: var(--typography-body-1-weight);\n}\n\n/* Checked state */\n\n.control[data-checked]:not([data-invalid]) {\n --radio-bg: var(--color-action-neutral-base);\n --radio-border: transparent;\n --radio-dot-color: var(--color-on-neutral);\n}\n\n/* Focus */\n\n.control:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n/* Disabled — scoped to item root, mirrors group-level disabled */\n\n.root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n & * {\n cursor: not-allowed;\n }\n}\n\n/* Invalid */\n\n.root[data-invalid] {\n --radio-border: var(--color-negative);\n --radio-label-color: var(--color-content-negative-base);\n}\n\n.control[data-invalid][data-checked] {\n --radio-bg: var(--color-negative);\n --radio-dot-color: var(--color-on-negative);\n}\n\n/* ─── Indicator (CSS dot) ─────────────────────────────────────────────────────── */\n\n.indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.indicator[data-unchecked] {\n display: none;\n}\n\n.indicator::before {\n content: \"\";\n display: block;\n width: 45%; /* proportional dot — scales with --radio-size */\n height: 45%;\n border-radius: 9999px;\n background-color: var(--radio-dot-color);\n transition: background-color 0.2s;\n}\n\n/* ─── Label ───────────────────────────────────────────────────────────────────── */\n\n.label {\n font-size: var(--radio-label-font-size, var(--typography-body-2-size));\n line-height: var(--radio-label-line-height, var(--typography-body-2-height));\n font-weight: var(--radio-label-font-weight, var(--typography-body-2-weight));\n color: var(--radio-label-color);\n}\n\n.label--hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":""}
@@ -1,68 +1 @@
1
- .Ld_P-G_root {
2
- box-sizing: border-box;
3
- border-style: solid;
4
- border-width: .0625rem;
5
- border-color: var(--color-border-primary);
6
- background-color: var(--color-surface-tertiary);
7
- padding: var(--spacing-xxs);
8
- height: var(--root-height);
9
- width: var(--root-width);
10
- cursor: pointer;
11
- border-radius: var(--radius-full);
12
- flex-shrink: 0;
13
- align-items: center;
14
- transition: background-color .15s, border-color .15s, opacity .15s;
15
- display: inline-flex;
16
- }
17
-
18
- .Ld_P-G_root[data-size="sm"] {
19
- --root-width: 2rem;
20
- --root-height: 1.125rem;
21
- }
22
-
23
- .Ld_P-G_root[data-size="md"] {
24
- --root-width: 2.25rem;
25
- --root-height: 1.25rem;
26
- }
27
-
28
- .Ld_P-G_root[data-size="lg"] {
29
- --root-width: 2.625rem;
30
- --root-height: 1.5rem;
31
- }
32
-
33
- .Ld_P-G_root[data-checked] {
34
- background-color: var(--color-action-brand-base);
35
- border-color: var(--color-action-brand-base);
36
- }
37
-
38
- .Ld_P-G_root[data-disabled] {
39
- cursor: not-allowed;
40
- opacity: .6;
41
- }
42
-
43
- .Ld_P-G_root[data-readonly] {
44
- cursor: default;
45
- }
46
-
47
- .Ld_P-G_root:focus-visible {
48
- outline-style: solid;
49
- outline-width: var(--stroke-focus-ring);
50
- outline-color: var(--color-action-info-base);
51
- outline-offset: var(--spacing-xxs);
52
- }
53
-
54
- .Ld_P-G_thumb {
55
- --thumb-size: calc(var(--root-height) - var(--spacing-xs));
56
- background-color: var(--color-on-brand);
57
- border-radius: var(--radius-full);
58
- height: var(--thumb-size);
59
- width: var(--thumb-size);
60
- translate: calc(-1 * var(--spacing-xxs) / 2) 0;
61
- transition: translate .15s, background-color .15s;
62
- display: block;
63
- }
64
-
65
- .Ld_P-G_root[data-checked] .Ld_P-G_thumb {
66
- translate: calc(var(--root-width) - var(--thumb-size) - (2 * var(--spacing-xxs)))
67
- 0;
68
- }
1
+ .Ld_P-G_root{box-sizing:border-box;border-style:solid;border-width:.0625rem;border-color:var(--color-border-primary);background-color:var(--color-surface-tertiary);padding:var(--spacing-xxs);height:var(--root-height);width:var(--root-width);cursor:pointer;border-radius:var(--radius-full);flex-shrink:0;align-items:center;transition:background-color .15s,border-color .15s,opacity .15s;display:inline-flex}.Ld_P-G_root[data-size=sm]{--root-width:2rem;--root-height:1.125rem}.Ld_P-G_root[data-size=md]{--root-width:2.25rem;--root-height:1.25rem}.Ld_P-G_root[data-size=lg]{--root-width:2.625rem;--root-height:1.5rem}.Ld_P-G_root[data-checked]{background-color:var(--color-action-brand-base);border-color:var(--color-action-brand-base)}.Ld_P-G_root[data-disabled]{cursor:not-allowed;opacity:.6}.Ld_P-G_root[data-readonly]{cursor:default}.Ld_P-G_root:focus-visible{outline-style:solid;outline-width:var(--stroke-focus-ring);outline-color:var(--color-action-info-base);outline-offset:var(--spacing-xxs)}.Ld_P-G_thumb{--thumb-size:calc(var(--root-height) - var(--spacing-xs));background-color:var(--color-on-brand);border-radius:var(--radius-full);height:var(--thumb-size);width:var(--thumb-size);translate:calc(-1 * var(--spacing-xxs) / 2) 0;transition:translate .15s,background-color .15s;display:block}.Ld_P-G_root[data-checked] .Ld_P-G_thumb{translate:calc(var(--root-width) - var(--thumb-size) - (2 * var(--spacing-xxs))) 0}
@@ -1,2 +1,3 @@
1
+ import './switch.css';
1
2
  var e={root:`Ld_P-G_root`,thumb:`Ld_P-G_thumb`};export{e as default};
2
3
  //# sourceMappingURL=switch.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.module.js","names":[],"sources":["../../../src/atoms/switch/switch.module.css"],"sourcesContent":[".root {\n /* Layout */\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n\n /* Track shape */\n border-style: solid;\n border-width: 0.0625rem; /* 1px */\n border-color: var(--color-border-primary);\n background-color: var(--color-surface-tertiary);\n padding: var(--spacing-xxs); /* 0.125rem */\n\n height: var(--root-height);\n width: var(--root-width);\n\n /* Interaction */\n cursor: pointer;\n border-radius: var(--radius-full);\n transition:\n background-color 150ms ease,\n border-color 150ms ease,\n opacity 150ms ease;\n}\n\n/* Sizes (track) */\n.root[data-size=\"sm\"] {\n --root-width: 2rem; /* 32px */\n --root-height: 1.125rem; /* 18px */\n}\n\n.root[data-size=\"md\"] {\n --root-width: 2.25rem; /* 36px */\n --root-height: 1.25rem; /* 20px */\n}\n\n.root[data-size=\"lg\"] {\n --root-width: 2.625rem; /* 42px */\n --root-height: 1.5rem; /* 24px */\n}\n\n/* Checked track */\n.root[data-checked] {\n background-color: var(--color-action-brand-base);\n border-color: var(--color-action-brand-base);\n}\n\n/* Disabled */\n.root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Readonly */\n.root[data-readonly] {\n cursor: default;\n}\n\n/* Focus ring\n If you standardize on [data-focus-visible] later, swap selector accordingly. */\n.root:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n/* Thumb */\n.thumb {\n --thumb-size: calc(var(--root-height) - var(--spacing-xs));\n display: block;\n background-color: var(--color-on-brand);\n border-radius: var(--radius-full);\n transition:\n translate 150ms ease,\n background-color 150ms ease;\n\n height: var(--thumb-size);\n width: var(--thumb-size);\n\n translate: calc(-1 * var(--spacing-xxs) / 2) 0;\n}\n\n/* Thumb position when checked */\n.root[data-checked] .thumb {\n translate: calc(\n var(--root-width) - var(--thumb-size) - (2 * var(--spacing-xxs))\n )\n 0;\n}\n"],"mappings":"AAIA,IAAA,EAAe,CAAC,KAAA,cAAA,MAAA,cAAA"}
1
+ {"version":3,"file":"switch.module.js","names":[],"sources":["../../../src/atoms/switch/switch.module.css"],"sourcesContent":[".root {\n /* Layout */\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n\n /* Track shape */\n border-style: solid;\n border-width: 0.0625rem; /* 1px */\n border-color: var(--color-border-primary);\n background-color: var(--color-surface-tertiary);\n padding: var(--spacing-xxs); /* 0.125rem */\n\n height: var(--root-height);\n width: var(--root-width);\n\n /* Interaction */\n cursor: pointer;\n border-radius: var(--radius-full);\n transition:\n background-color 150ms ease,\n border-color 150ms ease,\n opacity 150ms ease;\n}\n\n/* Sizes (track) */\n.root[data-size=\"sm\"] {\n --root-width: 2rem; /* 32px */\n --root-height: 1.125rem; /* 18px */\n}\n\n.root[data-size=\"md\"] {\n --root-width: 2.25rem; /* 36px */\n --root-height: 1.25rem; /* 20px */\n}\n\n.root[data-size=\"lg\"] {\n --root-width: 2.625rem; /* 42px */\n --root-height: 1.5rem; /* 24px */\n}\n\n/* Checked track */\n.root[data-checked] {\n background-color: var(--color-action-brand-base);\n border-color: var(--color-action-brand-base);\n}\n\n/* Disabled */\n.root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Readonly */\n.root[data-readonly] {\n cursor: default;\n}\n\n/* Focus ring\n If you standardize on [data-focus-visible] later, swap selector accordingly. */\n.root:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n/* Thumb */\n.thumb {\n --thumb-size: calc(var(--root-height) - var(--spacing-xs));\n display: block;\n background-color: var(--color-on-brand);\n border-radius: var(--radius-full);\n transition:\n translate 150ms ease,\n background-color 150ms ease;\n\n height: var(--thumb-size);\n width: var(--thumb-size);\n\n translate: calc(-1 * var(--spacing-xxs) / 2) 0;\n}\n\n/* Thumb position when checked */\n.root[data-checked] .thumb {\n translate: calc(\n var(--root-width) - var(--thumb-size) - (2 * var(--spacing-xxs))\n )\n 0;\n}\n"],"mappings":""}
@@ -1,92 +1 @@
1
- ._5jD7lW_root {
2
- box-sizing: border-box;
3
- width: 100%;
4
- }
5
-
6
- ._5jD7lW_list {
7
- z-index: 1;
8
- gap: var(--spacing-sm);
9
- border-bottom: .0625rem solid var(--color-border-primary);
10
- display: flex;
11
- position: relative;
12
- }
13
-
14
- ._5jD7lW_tab {
15
- box-sizing: border-box;
16
- color: var(--color-content-neutral-tertiary);
17
- font-family: var(--typography-typeface-ltr);
18
- font-size: var(--typography-caption-base-size);
19
- -webkit-user-select: none;
20
- user-select: none;
21
- white-space: nowrap;
22
- word-break: keep-all;
23
- padding-inline: var(--spacing-md);
24
- padding-block: var(--spacing-sm);
25
- background: none;
26
- border: none;
27
- border-bottom: .125rem solid #0000;
28
- outline: none;
29
- justify-content: center;
30
- align-items: center;
31
- height: 2.5rem;
32
- margin: 0;
33
- font-weight: 400;
34
- line-height: 1.4;
35
- transition: color .15s ease-in-out, border .15s ease-in-out, background-color .15s ease-in-out;
36
- display: flex;
37
-
38
- @media (hover: hover) {
39
- &:hover {
40
- color: var(--color-content-neutral-strong);
41
- }
42
- }
43
-
44
- &[data-active] {
45
- color: var(--color-content-brand-base);
46
- border-bottom-color: var(--color-brand-primary);
47
- }
48
-
49
- &:focus-visible {
50
- outline: var(--stroke-focus-ring) solid var(--color-action-info-base);
51
- outline-offset: -1px;
52
- }
53
- }
54
-
55
- ._5jD7lW_indicator {
56
- box-sizing: border-box;
57
- z-index: -1;
58
- background-color: var(--color-border-primary);
59
- border-radius: var(--spacing-xxs) var(--spacing-xxs) 0 0;
60
- height: .125rem;
61
- transition: translate, width, background-color .15s ease-in-out;
62
- position: absolute;
63
- bottom: -1px;
64
- left: 0;
65
- }
66
-
67
- ._5jD7lW_panel {
68
- box-sizing: border-box;
69
- width: 100%;
70
- min-height: 8rem;
71
- padding: var(--spacing-lg);
72
- color: var(--color-content-primary);
73
- background-color: var(--color-surface-secondary);
74
- border: .0625rem solid var(--color-border-secondary);
75
- border-top: none;
76
- border-end-end-radius: var(--spacing-sm);
77
- border-end-start-radius: var(--spacing-sm);
78
- grid-area: 1 / 1;
79
- justify-content: center;
80
- align-items: center;
81
- display: flex;
82
-
83
- &:focus-visible {
84
- outline: var(--stroke-focus-ring) solid var(--color-action-info-base);
85
- outline-offset: -1px;
86
- z-index: 1;
87
- }
88
-
89
- &[hidden] {
90
- display: none;
91
- }
92
- }
1
+ ._5jD7lW_root{box-sizing:border-box;width:100%}._5jD7lW_list{z-index:1;gap:var(--spacing-sm);border-bottom:.0625rem solid var(--color-border-primary);display:flex;position:relative}._5jD7lW_tab{box-sizing:border-box;color:var(--color-content-neutral-tertiary);font-family:var(--typography-typeface-ltr);font-size:var(--typography-caption-base-size);-webkit-user-select:none;user-select:none;white-space:nowrap;word-break:keep-all;padding-inline:var(--spacing-md);padding-block:var(--spacing-sm);background:0 0;border:none;border-bottom:.125rem solid #0000;outline:none;justify-content:center;align-items:center;height:2.5rem;margin:0;font-weight:400;line-height:1.4;transition:color .15s ease-in-out,border .15s ease-in-out,background-color .15s ease-in-out;display:flex;@media (hover:hover){&:hover{color:var(--color-content-neutral-strong)}}&[data-active]{color:var(--color-content-brand-base);border-bottom-color:var(--color-brand-primary)}&:focus-visible{outline:var(--stroke-focus-ring) solid var(--color-action-info-base);outline-offset:-1px}}._5jD7lW_indicator{box-sizing:border-box;z-index:-1;background-color:var(--color-border-primary);border-radius:var(--spacing-xxs) var(--spacing-xxs) 0 0;height:.125rem;transition:translate,width,background-color .15s ease-in-out;position:absolute;bottom:-1px;left:0}._5jD7lW_panel{box-sizing:border-box;width:100%;min-height:8rem;padding:var(--spacing-lg);color:var(--color-content-primary);background-color:var(--color-surface-secondary);border:.0625rem solid var(--color-border-secondary);border-top:none;border-end-end-radius:var(--spacing-sm);border-end-start-radius:var(--spacing-sm);grid-area:1/1;justify-content:center;align-items:center;display:flex;&:focus-visible{outline:var(--stroke-focus-ring) solid var(--color-action-info-base);outline-offset:-1px;z-index:1}&[hidden]{display:none}}
@@ -1,9 +1,9 @@
1
- import * as React from "react";
1
+ import * as React$1 from "react";
2
2
  import { Tabs } from "@base-ui/react/tabs";
3
3
 
4
4
  //#region src/atoms/tabs/tabs.d.ts
5
5
  type TabsProps = Tabs.Root.Props & {
6
- children: React.ReactNode;
6
+ children: React$1.ReactNode;
7
7
  };
8
8
  declare function Tabs$1({
9
9
  children,
@@ -11,7 +11,7 @@ declare function Tabs$1({
11
11
  ...props
12
12
  }: TabsProps): import("react/jsx-runtime").JSX.Element;
13
13
  type TabsListProps = Tabs.List.Props & {
14
- children: React.ReactNode;
14
+ children: React$1.ReactNode;
15
15
  /**
16
16
  * Whether to render the active tab indicator.
17
17
  */
@@ -1,2 +1,3 @@
1
+ import './tabs.css';
1
2
  var e={indicator:`_5jD7lW_indicator`,list:`_5jD7lW_list`,panel:`_5jD7lW_panel`,root:`_5jD7lW_root`,tab:`_5jD7lW_tab`};export{e as default};
2
3
  //# sourceMappingURL=tabs.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.module.js","names":[],"sources":["../../../src/atoms/tabs/tabs.module.css"],"sourcesContent":[".root {\n box-sizing: border-box;\n width: 100%;\n}\n\n.list {\n display: flex;\n position: relative;\n z-index: 1;\n gap: var(--spacing-sm);\n border-bottom: 0.0625rem solid var(--color-border-primary);\n}\n\n.tab {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n\n border: none;\n border-bottom-color: transparent;\n border-bottom-width: 0.125rem;\n border-bottom-style: solid;\n\n margin: 0;\n outline: none;\n background: none;\n color: var(--color-content-neutral-tertiary);\n font-family: var(--typography-typeface-ltr);\n font-size: var(--typography-caption-base-size);\n line-height: 1.4;\n font-weight: 400;\n -webkit-user-select: none;\n user-select: none;\n white-space: nowrap;\n word-break: keep-all;\n padding-inline: var(--spacing-md);\n padding-block: var(--spacing-sm);\n height: 2.5rem;\n\n transition:\n color 150ms ease-in-out,\n border 150ms ease-in-out,\n background-color 150ms ease-in-out;\n\n @media (hover: hover) {\n &:hover {\n color: var(--color-content-neutral-strong);\n }\n }\n\n &[data-active] {\n color: var(--color-content-brand-base);\n border-bottom-color: var(--color-brand-primary);\n }\n\n &:focus-visible {\n outline: var(--stroke-focus-ring) solid var(--color-action-info-base);\n outline-offset: -1px;\n }\n}\n\n.indicator {\n box-sizing: border-box;\n position: absolute;\n z-index: -1;\n bottom: -1px;\n left: 0;\n height: 0.125rem;\n background-color: var(--color-border-primary);\n transition:\n translate,\n width,\n background-color 150ms ease-in-out;\n border-radius: var(--spacing-xxs) var(--spacing-xxs) 0 0;\n}\n\n.panel {\n box-sizing: border-box;\n grid-area: 1 / 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 8rem;\n padding: var(--spacing-lg);\n color: var(--color-content-primary);\n background-color: var(--color-surface-secondary);\n border: 0.0625rem solid var(--color-border-secondary);\n border-top: none;\n border-end-end-radius: var(--spacing-sm);\n border-end-start-radius: var(--spacing-sm);\n\n &:focus-visible {\n outline: var(--stroke-focus-ring) solid var(--color-action-info-base);\n outline-offset: -1px;\n z-index: 1;\n }\n\n &[hidden] {\n display: none;\n }\n}\n"],"mappings":"AAUA,IAAA,EAAS,CAAA,UAAU,oBAAA,KAAA,eAAA,MAAA,gBAAA,KAAA,eAAA,IAAA,aAAA"}
1
+ {"version":3,"file":"tabs.module.js","names":[],"sources":["../../../src/atoms/tabs/tabs.module.css"],"sourcesContent":[".root {\n box-sizing: border-box;\n width: 100%;\n}\n\n.list {\n display: flex;\n position: relative;\n z-index: 1;\n gap: var(--spacing-sm);\n border-bottom: 0.0625rem solid var(--color-border-primary);\n}\n\n.tab {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n\n border: none;\n border-bottom-color: transparent;\n border-bottom-width: 0.125rem;\n border-bottom-style: solid;\n\n margin: 0;\n outline: none;\n background: none;\n color: var(--color-content-neutral-tertiary);\n font-family: var(--typography-typeface-ltr);\n font-size: var(--typography-caption-base-size);\n line-height: 1.4;\n font-weight: 400;\n -webkit-user-select: none;\n user-select: none;\n white-space: nowrap;\n word-break: keep-all;\n padding-inline: var(--spacing-md);\n padding-block: var(--spacing-sm);\n height: 2.5rem;\n\n transition:\n color 150ms ease-in-out,\n border 150ms ease-in-out,\n background-color 150ms ease-in-out;\n\n @media (hover: hover) {\n &:hover {\n color: var(--color-content-neutral-strong);\n }\n }\n\n &[data-active] {\n color: var(--color-content-brand-base);\n border-bottom-color: var(--color-brand-primary);\n }\n\n &:focus-visible {\n outline: var(--stroke-focus-ring) solid var(--color-action-info-base);\n outline-offset: -1px;\n }\n}\n\n.indicator {\n box-sizing: border-box;\n position: absolute;\n z-index: -1;\n bottom: -1px;\n left: 0;\n height: 0.125rem;\n background-color: var(--color-border-primary);\n transition:\n translate,\n width,\n background-color 150ms ease-in-out;\n border-radius: var(--spacing-xxs) var(--spacing-xxs) 0 0;\n}\n\n.panel {\n box-sizing: border-box;\n grid-area: 1 / 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-height: 8rem;\n padding: var(--spacing-lg);\n color: var(--color-content-primary);\n background-color: var(--color-surface-secondary);\n border: 0.0625rem solid var(--color-border-secondary);\n border-top: none;\n border-end-end-radius: var(--spacing-sm);\n border-end-start-radius: var(--spacing-sm);\n\n &:focus-visible {\n outline: var(--stroke-focus-ring) solid var(--color-action-info-base);\n outline-offset: -1px;\n z-index: 1;\n }\n\n &[hidden] {\n display: none;\n }\n}\n"],"mappings":""}