ui-lab-registry 0.3.3 → 0.3.4

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 (67) hide show
  1. package/dist/components/Button/examples/01-variants.d.ts.map +1 -1
  2. package/dist/components/Button/examples/01-variants.js.map +1 -1
  3. package/dist/components/Button/examples/02-multi-actions.d.ts +6 -0
  4. package/dist/components/Button/examples/02-multi-actions.d.ts.map +1 -0
  5. package/dist/components/Button/examples/02-multi-actions.js +12 -0
  6. package/dist/components/Button/examples/02-multi-actions.js.map +1 -0
  7. package/dist/components/Button/examples/03-joined-toggle.d.ts +6 -0
  8. package/dist/components/Button/examples/03-joined-toggle.d.ts.map +1 -0
  9. package/dist/components/Button/examples/03-joined-toggle.js +15 -0
  10. package/dist/components/Button/examples/03-joined-toggle.js.map +1 -0
  11. package/dist/components/Button/examples/04-sub-stack-actions.d.ts +6 -0
  12. package/dist/components/Button/examples/04-sub-stack-actions.d.ts.map +1 -0
  13. package/dist/components/Button/examples/04-sub-stack-actions.js +15 -0
  14. package/dist/components/Button/examples/04-sub-stack-actions.js.map +1 -0
  15. package/dist/components/Button/examples/05-split-action-button.d.ts +6 -0
  16. package/dist/components/Button/examples/05-split-action-button.d.ts.map +1 -0
  17. package/dist/components/Button/examples/05-split-action-button.js +42 -0
  18. package/dist/components/Button/examples/05-split-action-button.js.map +1 -0
  19. package/dist/components/Button/examples/index.d.ts +8 -0
  20. package/dist/components/Button/examples/index.d.ts.map +1 -1
  21. package/dist/components/Button/examples/index.js +8 -0
  22. package/dist/components/Button/examples/index.js.map +1 -1
  23. package/dist/components/Button/examples.json +27 -1
  24. package/dist/components/Button/index.d.ts.map +1 -1
  25. package/dist/components/Button/index.js +8 -0
  26. package/dist/components/Button/index.js.map +1 -1
  27. package/dist/generated-data.d.ts.map +1 -1
  28. package/dist/generated-data.js +101 -140
  29. package/dist/generated-data.js.map +1 -1
  30. package/dist/generated-styles.d.ts.map +1 -1
  31. package/dist/generated-styles.js +142 -76
  32. package/dist/generated-styles.js.map +1 -1
  33. package/dist/generated-styles.json +142 -76
  34. package/dist/patterns/layout/media-object/metadata.json +1 -1
  35. package/dist/patterns/layout/media-object/variations/lg/index.js +1 -1
  36. package/dist/patterns/layout/media-object/variations/lg/index.js.map +1 -1
  37. package/dist/registry.d.ts.map +1 -1
  38. package/dist/registry.js +38 -12
  39. package/dist/registry.js.map +1 -1
  40. package/dist/sections/CTA/index.js +1 -1
  41. package/dist/sections/CTA/index.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/components/Anchor/metadata.json +1 -1
  44. package/src/components/Button/examples/01-variants.tsx +1 -1
  45. package/src/components/Button/examples/02-multi-actions.tsx +20 -0
  46. package/src/components/Button/examples/03-joined-toggle.tsx +32 -0
  47. package/src/components/Button/examples/04-sub-stack-actions.tsx +29 -0
  48. package/src/components/Button/examples/05-split-action-button.tsx +108 -0
  49. package/src/components/Button/examples/index.ts +8 -0
  50. package/src/components/Button/examples.json +27 -1
  51. package/src/components/Button/index.tsx +8 -0
  52. package/src/components/Color/metadata.json +1 -1
  53. package/src/components/Date/metadata.json +1 -1
  54. package/src/components/Expand/metadata.json +1 -1
  55. package/src/components/Frame/metadata.json +1 -1
  56. package/src/components/Gallery/metadata.json +1 -1
  57. package/src/components/Grid/metadata.json +1 -1
  58. package/src/components/Mask/metadata.json +1 -1
  59. package/src/components/Page/metadata.json +1 -1
  60. package/src/components/Path/metadata.json +1 -1
  61. package/src/components/Scroll/metadata.json +1 -1
  62. package/src/generated-data.ts +101 -140
  63. package/src/generated-styles.ts +142 -76
  64. package/src/patterns/layout/media-object/metadata.json +1 -1
  65. package/src/patterns/layout/media-object/variations/lg/index.tsx +1 -1
  66. package/src/registry.ts +38 -12
  67. package/src/sections/CTA/index.tsx +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"01-variants.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/01-variants.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,4CAqD9B"}
1
+ {"version":3,"file":"01-variants.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/01-variants.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,4CAqD9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"01-variants.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/01-variants.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,iGAAiG;CAC/G,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,kCAAuB,EACrF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,iCAA0B,EACrD,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,+BAAkB,IAClD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,8BAAmB,EACjF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,6BAAsB,EAC7C,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,+BAAkB,IAC9C,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,sBAAW,EACzE,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,sBAAe,EAChC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,uBAAgB,EACjC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,sBAAe,IAC5B,IACF,IACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"01-variants.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/01-variants.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,iGAAiG;CAC/G,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,kCAAuB,EACrF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,iCAA0B,EACrD,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,+BAAkB,IAClD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,gCAAqB,EACnF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,+BAAwB,EACjD,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,+BAAkB,IAChD,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,8BAAmB,EACjF,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,6BAAsB,EAC7C,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,+BAAkB,IAC9C,IACF,EAEN,0BACE,aAAI,SAAS,EAAC,gDAAgD,sBAAW,EACzE,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,sBAAe,EAChC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,uBAAgB,EACjC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,sBAAe,IAC5B,IACF,IACF,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const metadata: {
2
+ title: string;
3
+ description: string;
4
+ };
5
+ export default function Example(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=02-multi-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-multi-actions.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/02-multi-actions.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,4CAQ9B"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button, Flex } from 'ui-lab-components';
4
+ import { FaEllipsisVertical } from "react-icons/fa6";
5
+ export const metadata = {
6
+ title: 'Multiple Actions',
7
+ description: 'A primary action button grouped with secondary actions and an options menu.'
8
+ };
9
+ export default function Example() {
10
+ return (_jsxs(Flex, { gap: "xs", className: "w-110 *:not-last:flex-1", children: [_jsx(Button, { size: "sm", variant: "primary", children: "Subscribe" }), _jsx(Button, { size: "sm", children: "Message" }), _jsx(Button, { size: "icon", variant: "outline", icon: _jsx(FaEllipsisVertical, {}) })] }));
11
+ }
12
+ //# sourceMappingURL=02-multi-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-multi-actions.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/02-multi-actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,6EAA6E;CAC3F,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,CACL,MAAC,IAAI,IAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,yBAAyB,aAChD,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,0BAAoB,EACvD,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,wBAAkB,EACnC,KAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAE,KAAC,kBAAkB,KAAG,GAAI,IACjE,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const metadata: {
2
+ title: string;
3
+ description: string;
4
+ };
5
+ export default function Example(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=03-joined-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-joined-toggle.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/03-joined-toggle.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,4CAmB9B"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Button, Group, Divider, Input, Flex } from 'ui-lab-components';
5
+ import { FaList, FaGrip, FaTable, FaPlus } from "react-icons/fa6";
6
+ import { LuSearch } from "react-icons/lu";
7
+ export const metadata = {
8
+ title: 'Joined Toggle Buttons',
9
+ description: 'Multiple buttons grouped together for view/mode selection with active state indication.'
10
+ };
11
+ export default function Example() {
12
+ const [viewMode, setViewMode] = useState("list");
13
+ return (_jsxs(Flex, { className: "w-110", gap: "xs", align: "center", children: [_jsx(Input, { placeholder: "Search items...", icon: _jsx(LuSearch, {}), className: "w-full" }), _jsxs(Group, { orientation: "horizontal", value: viewMode, onChange: setViewMode, children: [_jsx(Group.Button, { size: "icon", value: "list", children: _jsx(FaList, {}) }), _jsx(Divider, { orientation: "vertical" }), _jsx(Group.Button, { size: "icon", value: "grid", children: _jsx(FaGrip, {}) }), _jsx(Divider, { orientation: "vertical" }), _jsx(Group.Button, { size: "icon", value: "table", children: _jsx(FaTable, {}) })] }), _jsx(Button, { size: "sm", icon: { left: _jsx(FaPlus, { size: 12 }) }, children: "New" })] }));
14
+ }
15
+ //# sourceMappingURL=03-joined-toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-joined-toggle.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/03-joined-toggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,yFAAyF;CACvG,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAC,OAAO,EAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,aAC7C,KAAC,KAAK,IACJ,WAAW,EAAC,iBAAiB,EAC7B,IAAI,EAAE,KAAC,QAAQ,KAAG,EAClB,SAAS,EAAC,QAAQ,GAClB,EACF,MAAC,KAAK,IAAC,WAAW,EAAC,YAAY,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,aACpE,KAAC,KAAK,CAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,YAAC,KAAC,MAAM,KAAG,GAAe,EAChE,KAAC,OAAO,IAAC,WAAW,EAAC,UAAU,GAAG,EAClC,KAAC,KAAK,CAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,YAAC,KAAC,MAAM,KAAG,GAAe,EAChE,KAAC,OAAO,IAAC,WAAW,EAAC,UAAU,GAAG,EAClC,KAAC,KAAK,CAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,YAAC,KAAC,OAAO,KAAG,GAAe,IAC5D,EACR,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,oBAAe,IAChE,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const metadata: {
2
+ title: string;
3
+ description: string;
4
+ };
5
+ export default function Example(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=04-sub-stack-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"04-sub-stack-actions.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/04-sub-stack-actions.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,4CAgB9B"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Button, Group, Input, Badge, Flex } from 'ui-lab-components';
5
+ import { FaList, FaGrip, FaPlus } from "react-icons/fa6";
6
+ import { LuSearch } from "react-icons/lu";
7
+ export const metadata = {
8
+ title: 'Sub Stack Actions',
9
+ description: 'A collection of buttons and inputs arranged horizontally for grouped actions and filtering.'
10
+ };
11
+ export default function Example() {
12
+ const [viewMode, setViewMode] = useState("list");
13
+ return (_jsxs(Flex, { align: "center", gap: "xs", className: "w-110", children: [_jsxs(Group, { orientation: "horizontal", spacing: "xs", value: viewMode, onChange: setViewMode, children: [_jsx(Group.Button, { size: "icon", value: "list", children: _jsx(FaList, {}) }), _jsx(Group.Button, { size: "icon", value: "grid", children: _jsx(FaGrip, {}) })] }), _jsx(Input, { placeholder: "Search...", icon: _jsx(LuSearch, {}), hint: _jsx(Badge, { size: "sm", variant: "secondary", children: "Ctrl+K" }) }), _jsx(Button, { size: "sm", icon: { right: _jsx(FaPlus, { size: 12 }) }, children: "Upload" })] }));
14
+ }
15
+ //# sourceMappingURL=04-sub-stack-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"04-sub-stack-actions.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/04-sub-stack-actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,6FAA6F;CAC3G,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,aAC7C,MAAC,KAAK,IAAC,WAAW,EAAC,YAAY,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,aACjF,KAAC,KAAK,CAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,YAAC,KAAC,MAAM,KAAG,GAAe,EAChE,KAAC,KAAK,CAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,YAAC,KAAC,MAAM,KAAG,GAAe,IAC1D,EACR,KAAC,KAAK,IACJ,WAAW,EAAC,WAAW,EACvB,IAAI,EAAE,KAAC,QAAQ,KAAG,EAClB,IAAI,EAAE,KAAC,KAAK,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,uBAAgB,GAC1D,EACF,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,uBAAkB,IACpE,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const metadata: {
2
+ title: string;
3
+ description: string;
4
+ };
5
+ export default function Example(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=05-split-action-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"05-split-action-button.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/05-split-action-button.tsx"],"names":[],"mappings":"AA2BA,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,4CA2E9B"}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { Button, Divider, Select, Searchable, Flex, Menu } from 'ui-lab-components';
5
+ import { FaSpinner, FaCheck, FaEllipsisVertical, FaHashtag, FaLock } from "react-icons/fa6";
6
+ const channels = [
7
+ { value: "general", label: "general", description: "General team discussion" },
8
+ { value: "announcements", label: "announcements", description: "Important team updates", private: true },
9
+ { value: "design", label: "design", description: "Design work and feedback" },
10
+ { value: "engineering", label: "engineering", description: "Engineering discussions" },
11
+ { value: "marketing", label: "marketing", description: "Marketing campaigns" },
12
+ { value: "product", label: "product", description: "Product roadmap and planning" },
13
+ { value: "random", label: "random", description: "Off-topic conversations" },
14
+ { value: "releases", label: "releases", description: "Release announcements", private: true },
15
+ ];
16
+ const publishActions = {
17
+ publish: { label: "Publish Now", variant: "ghost" },
18
+ draft: { label: "Save as Draft", variant: "ghost" },
19
+ schedule: { label: "Schedule for Later", variant: "outline" },
20
+ };
21
+ export const metadata = {
22
+ title: 'Split Action Button',
23
+ description: 'A primary action button joined with a Select dropdown that changes what the button does — useful for publish workflows with multiple delivery options.'
24
+ };
25
+ export default function Example() {
26
+ const [action, setAction] = useState("publish");
27
+ const [status, setStatus] = useState("idle");
28
+ const [channel, setChannel] = useState("general");
29
+ const selectedChannel = channels.find((c) => c.value === channel);
30
+ const cfg = publishActions[action];
31
+ const handleExecute = () => {
32
+ setStatus("loading");
33
+ setTimeout(() => {
34
+ setStatus("done");
35
+ setTimeout(() => setStatus("idle"), 2000);
36
+ }, 1500);
37
+ };
38
+ const leftIcon = status === "loading" ? _jsx(FaSpinner, { className: "animate-spin" }) : status === "done" ? _jsx(FaCheck, {}) : undefined;
39
+ const label = status === "loading" ? "Saving..." : status === "done" ? "Done!" : cfg.label;
40
+ return (_jsxs(Flex, { gap: "xs", className: "w-110", align: "center", children: [_jsxs(Select, { selectedKey: channel, valueLabel: selectedChannel ? `#${selectedChannel.label}` : undefined, onSelectionChange: setChannel, className: "flex h-10", isDisabled: status !== "idle", children: [_jsx(Searchable.Input, { className: "w-50", icon: _jsx(FaHashtag, {}), placeholder: "Select channel..." }), _jsx(Select.Content, { children: _jsx(Select.List, { children: channels.map((c) => (_jsx(Select.Item, { value: c.value, textValue: c.label, icon: c.private ? _jsx(FaLock, { className: "h-3 w-3" }) : _jsx(FaHashtag, { className: "h-3 w-3" }), description: c.description, children: c.label }, c.value))) }) })] }), _jsxs(Select, { className: "flex h-10", selectedKey: action, onSelectionChange: (key) => setAction(key), isDisabled: status !== "idle", children: [_jsx(Button, { onPress: handleExecute, variant: "ghost", size: "sm", className: "w-full", isDisabled: status !== "idle", icon: leftIcon, children: label }), _jsx(Divider, { orientation: "vertical", spacing: "none" }), _jsx(Select.Trigger, {}), _jsxs(Select.Content, { children: [_jsx(Select.Item, { value: "publish", textValue: "Publish Now", children: "Publish Now" }), _jsx(Select.Item, { value: "draft", textValue: "Save as Draft", children: "Save as Draft" }), _jsx(Select.Item, { value: "schedule", textValue: "Schedule for Later", children: "Schedule for Later" })] })] }), _jsxs(Menu, { type: "pop-over", children: [_jsx(Menu.Trigger, { children: _jsx(Button, { size: "icon", variant: "outline", icon: _jsx(FaEllipsisVertical, {}) }) }), _jsxs(Menu.Content, { offset: 8, side: "bottom", align: "end", children: [_jsx(Menu.Item, { children: "Preview" }), _jsx(Menu.Item, { children: "View History" }), _jsx(Menu.Item, { children: "Discard Changes" })] })] })] }));
41
+ }
42
+ //# sourceMappingURL=05-split-action-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"05-split-action-button.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/05-split-action-button.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  export { default as Example1 } from './01-variants.js';
2
2
  export { metadata as metadata1 } from './01-variants.js';
3
+ export { default as Example2 } from './02-multi-actions.js';
4
+ export { metadata as metadata2 } from './02-multi-actions.js';
5
+ export { default as Example3 } from './03-joined-toggle.js';
6
+ export { metadata as metadata3 } from './03-joined-toggle.js';
7
+ export { default as Example4 } from './04-sub-stack-actions.js';
8
+ export { metadata as metadata4 } from './04-sub-stack-actions.js';
9
+ export { default as Example5 } from './05-split-action-button.js';
10
+ export { metadata as metadata5 } from './05-split-action-button.js';
3
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,3 +1,11 @@
1
1
  export { default as Example1 } from './01-variants.js';
2
2
  export { metadata as metadata1 } from './01-variants.js';
3
+ export { default as Example2 } from './02-multi-actions.js';
4
+ export { metadata as metadata2 } from './02-multi-actions.js';
5
+ export { default as Example3 } from './03-joined-toggle.js';
6
+ export { metadata as metadata3 } from './03-joined-toggle.js';
7
+ export { default as Example4 } from './04-sub-stack-actions.js';
8
+ export { metadata as metadata4 } from './04-sub-stack-actions.js';
9
+ export { default as Example5 } from './05-split-action-button.js';
10
+ export { metadata as metadata5 } from './05-split-action-button.js';
3
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Button/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1 +1,27 @@
1
- {}
1
+ {
2
+ "01-variants": {
3
+ "title": "Button Variants",
4
+ "description": "All available button variants including primary, default, secondary, outline, and ghost styles.",
5
+ "code": "import React from 'react'\nimport { Button } from 'ui-lab-components'\n\nexport default function Example() {\n return (\n <div className=\"p-4 space-y-8\">\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Primary Variant</h3>\n <div className=\"flex gap-2 flex-wrap\">\n <Button variant=\"primary\">Primary Button</Button>\n <Button variant=\"primary\" disabled>Disabled</Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Default Variant</h3>\n <div className=\"flex gap-2 flex-wrap\">\n <Button variant=\"default\">Default Button</Button>\n <Button variant=\"default\" disabled>Disabled</Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Secondary Variant</h3>\n <div className=\"flex gap-2 flex-wrap\">\n <Button variant=\"secondary\">Secondary Button</Button>\n <Button variant=\"secondary\" disabled>Disabled</Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Outline Variant</h3>\n <div className=\"flex gap-2 flex-wrap\">\n <Button variant=\"outline\">Outline Button</Button>\n <Button variant=\"outline\" disabled>Disabled</Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Ghost Variant</h3>\n <div className=\"flex gap-2 flex-wrap\">\n <Button variant=\"ghost\">Ghost Button</Button>\n <Button variant=\"ghost\" disabled>Disabled</Button>\n </div>\n </div>\n\n <div>\n <h3 className=\"text-sm font-semibold text-foreground-200 mb-3\">Sizes</h3>\n <div className=\"flex gap-2 flex-wrap items-center\">\n <Button size=\"sm\">Small</Button>\n <Button size=\"md\">Medium</Button>\n <Button size=\"lg\">Large</Button>\n </div>\n </div>\n </div>\n )\n}"
6
+ },
7
+ "02-multi-actions": {
8
+ "title": "Multiple Actions",
9
+ "description": "A primary action button grouped with secondary actions and an options menu.",
10
+ "code": "\"use client\";\n\nimport React, { useState } from 'react'\nimport { Button, Flex } from 'ui-lab-components'\nimport { FaEllipsisVertical } from \"react-icons/fa6\";\n\nexport default function Example() {\n return (\n <Flex gap=\"xs\" className=\"w-110 *:not-last:flex-1\">\n <Button size=\"sm\" variant=\"primary\" >Subscribe</Button>\n <Button size=\"sm\" >Message</Button>\n <Button size=\"icon\" variant=\"outline\" icon={<FaEllipsisVertical />} />\n </Flex>\n );\n}"
11
+ },
12
+ "03-joined-toggle": {
13
+ "title": "Joined Toggle Buttons",
14
+ "description": "Multiple buttons grouped together for view/mode selection with active state indication.",
15
+ "code": "\"use client\";\n\nimport React, { useState } from 'react'\nimport { Button, Group, Divider, Input, Flex } from 'ui-lab-components'\nimport { FaList, FaGrip, FaTable, FaPlus } from \"react-icons/fa6\";\nimport { LuSearch } from \"react-icons/lu\";\n\nexport default function Example() {\n const [viewMode, setViewMode] = useState(\"list\");\n return (\n <Flex className=\"w-110\" gap=\"xs\" align=\"center\">\n <Input\n placeholder=\"Search items...\"\n icon={<LuSearch />}\n className=\"w-full\"\n />\n <Group orientation=\"horizontal\" value={viewMode} onChange={setViewMode}>\n <Group.Button size=\"icon\" value=\"list\"><FaList /></Group.Button>\n <Divider orientation=\"vertical\" />\n <Group.Button size=\"icon\" value=\"grid\"><FaGrip /></Group.Button>\n <Divider orientation=\"vertical\" />\n <Group.Button size=\"icon\" value=\"table\"><FaTable /></Group.Button>\n </Group>\n <Button size=\"sm\" icon={{ left: <FaPlus size={12} /> }} >New</Button>\n </Flex>\n );\n}"
16
+ },
17
+ "04-sub-stack-actions": {
18
+ "title": "Sub Stack Actions",
19
+ "description": "A collection of buttons and inputs arranged horizontally for grouped actions and filtering.",
20
+ "code": "\"use client\";\n\nimport React, { useState } from 'react'\nimport { Button, Group, Input, Badge, Flex } from 'ui-lab-components'\nimport { FaList, FaGrip, FaPlus } from \"react-icons/fa6\";\nimport { LuSearch } from \"react-icons/lu\";\n\nexport default function Example() {\n const [viewMode, setViewMode] = useState(\"list\");\n return (\n <Flex align=\"center\" gap=\"xs\" className=\"w-110\">\n <Group orientation=\"horizontal\" spacing=\"xs\" value={viewMode} onChange={setViewMode}>\n <Group.Button size=\"icon\" value=\"list\"><FaList /></Group.Button>\n <Group.Button size=\"icon\" value=\"grid\"><FaGrip /></Group.Button>\n </Group>\n <Input\n placeholder=\"Search...\"\n icon={<LuSearch />}\n hint={<Badge size=\"sm\" variant=\"secondary\" >Ctrl+K</Badge>}\n />\n <Button size=\"sm\" icon={{ right: <FaPlus size={12} /> }} >Upload</Button>\n </Flex>\n );\n}"
21
+ },
22
+ "05-split-action-button": {
23
+ "title": "Split Action Button",
24
+ "description": "A primary action button joined with a Select dropdown that changes what the button does — useful for publish workflows with multiple delivery options.",
25
+ "code": "\"use client\";\n\nimport React, { useState } from 'react'\nimport { Button, Divider, Select, Searchable, Flex, Menu } from 'ui-lab-components'\nimport { FaSpinner, FaCheck, FaEllipsisVertical, FaHashtag, FaLock } from \"react-icons/fa6\";\n\ntype Channel = { value: string; label: string; description: string; private?: boolean };\n\nconst channels: Channel[] = [\n { value: \"general\", label: \"general\", description: \"General team discussion\" },\n { value: \"announcements\", label: \"announcements\", description: \"Important team updates\", private: true },\n { value: \"design\", label: \"design\", description: \"Design work and feedback\" },\n { value: \"engineering\", label: \"engineering\", description: \"Engineering discussions\" },\n { value: \"marketing\", label: \"marketing\", description: \"Marketing campaigns\" },\n { value: \"product\", label: \"product\", description: \"Product roadmap and planning\" },\n { value: \"random\", label: \"random\", description: \"Off-topic conversations\" },\n { value: \"releases\", label: \"releases\", description: \"Release announcements\", private: true },\n];\n\ntype PublishAction = \"publish\" | \"draft\" | \"schedule\";\n\nconst publishActions: Record<PublishAction, { label: string; variant: \"ghost\" | \"default\" | \"outline\" }> = {\n publish: { label: \"Publish Now\", variant: \"ghost\" },\n draft: { label: \"Save as Draft\", variant: \"ghost\" },\n schedule: { label: \"Schedule for Later\", variant: \"outline\" },\n};\n\nexport default function Example() {\n const [action, setAction] = useState<PublishAction>(\"publish\");\n const [status, setStatus] = useState<\"idle\" | \"loading\" | \"done\">(\"idle\");\n const [channel, setChannel] = useState<string | number | null>(\"general\");\n const selectedChannel = channels.find((c) => c.value === channel);\n const cfg = publishActions[action];\n\n const handleExecute = () => {\n setStatus(\"loading\");\n setTimeout(() => {\n setStatus(\"done\");\n setTimeout(() => setStatus(\"idle\"), 2000);\n }, 1500);\n };\n\n const leftIcon = status === \"loading\" ? <FaSpinner className=\"animate-spin\" /> : status === \"done\" ? <FaCheck /> : undefined;\n const label = status === \"loading\" ? \"Saving...\" : status === \"done\" ? \"Done!\" : cfg.label;\n\n return (\n <Flex gap=\"xs\" className=\"w-110\" align=\"center\">\n <Select\n selectedKey={channel}\n valueLabel={selectedChannel ? `#${selectedChannel.label}` : undefined}\n onSelectionChange={setChannel}\n className=\"flex h-10\"\n isDisabled={status !== \"idle\"}\n >\n <Searchable.Input className=\"w-50\" icon={<FaHashtag />} placeholder=\"Select channel...\" />\n <Select.Content>\n <Select.List>\n {channels.map((c) => (\n <Select.Item\n key={c.value}\n value={c.value}\n textValue={c.label}\n icon={c.private ? <FaLock className=\"h-3 w-3\" /> : <FaHashtag className=\"h-3 w-3\" />}\n description={c.description}\n >\n {c.label}\n </Select.Item>\n ))}\n </Select.List>\n </Select.Content>\n </Select>\n <Select className=\"flex h-10\" selectedKey={action} onSelectionChange={(key) => setAction(key as PublishAction)} isDisabled={status !== \"idle\"}>\n <Button\n onPress={handleExecute}\n variant=\"ghost\"\n size=\"sm\"\n className=\"w-full\"\n isDisabled={status !== \"idle\"}\n icon={leftIcon}\n >\n {label}\n </Button>\n <Divider orientation=\"vertical\" spacing=\"none\" />\n <Select.Trigger />\n <Select.Content>\n <Select.Item value=\"publish\" textValue=\"Publish Now\">Publish Now</Select.Item>\n <Select.Item value=\"draft\" textValue=\"Save as Draft\">Save as Draft</Select.Item>\n <Select.Item value=\"schedule\" textValue=\"Schedule for Later\">Schedule for Later</Select.Item>\n </Select.Content>\n </Select>\n <Menu type=\"pop-over\">\n <Menu.Trigger>\n <Button size=\"icon\" variant=\"outline\" icon={<FaEllipsisVertical />} />\n </Menu.Trigger>\n <Menu.Content offset={8} side=\"bottom\" align=\"end\">\n <Menu.Item>Preview</Menu.Item>\n <Menu.Item>View History</Menu.Item>\n <Menu.Item>Discard Changes</Menu.Item>\n </Menu.Content>\n </Menu>\n </Flex>\n );\n}"
26
+ }
27
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAUtD,QAAA,MAAM,cAAc,EAAE,UAAU,EAuC/B,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,eAkC1B,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkBtD,QAAA,MAAM,cAAc,EAAE,UAAU,EAuC/B,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,eAkC1B,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
@@ -1,11 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from 'ui-lab-components';
3
3
  import Example1, { metadata as metadata1 } from './examples/01-variants.js';
4
+ import Example2, { metadata as metadata2 } from './examples/02-multi-actions.js';
5
+ import Example3, { metadata as metadata3 } from './examples/03-joined-toggle.js';
6
+ import Example4, { metadata as metadata4 } from './examples/04-sub-stack-actions.js';
7
+ import Example5, { metadata as metadata5 } from './examples/05-split-action-button.js';
4
8
  import examplesJson from './examples.json' with { type: 'json' };
5
9
  import { loadComponentExamples } from '../../utils/load-component-examples.js';
6
10
  // Define examplesData locally
7
11
  const examplesData = [
8
12
  { id: '01-variants', Component: Example1, metadata: metadata1 },
13
+ { id: '02-multi-actions', Component: Example2, metadata: metadata2 },
14
+ { id: '03-joined-toggle', Component: Example3, metadata: metadata3 },
15
+ { id: '04-sub-stack-actions', Component: Example4, metadata: metadata4 },
16
+ { id: '05-split-action-button', Component: Example5, metadata: metadata5 },
9
17
  ];
10
18
  const buttonControls = [
11
19
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,QAAQ,EAAE,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,YAAY,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,8BAA8B;AAC9B,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;CAChE,CAAC;AAEF,MAAM,cAAc,GAAiB;IACnC;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;YAC1C,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC;QACD,YAAY,EAAE,SAAS;KACxB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;YAC/B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;YAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;SAChC;QACD,YAAY,EAAE,IAAI;KACnB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,KAAK;KACpB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,WAAW;KAC1B;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;;;;EAItB,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oHAAoH;IACjI,QAAQ,EAAE,CACR,eAAK,SAAS,EAAC,+BAA+B,aAC5C,+PAEI,EACJ,oLAEI,IACA,CACP;IACD,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,yCAAyC;YACtD,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,KAAC,MAAM,2BAAkB;YAClC,QAAQ,EAAE,cAAc;YACxB,aAAa,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,CAC7B,KAAC,MAAM,IACL,OAAO,EAAE,KAAK,CAAC,OAAc,EAC7B,IAAI,EAAE,KAAK,CAAC,IAAW,EACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ,yBAGjB,CACV;SACF;QACD,GAAG,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC;KACrD;CACF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generated-data.d.ts","sourceRoot":"","sources":["../src/generated-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAElH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAo/HrD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAsC3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAoMnE,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwChD,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoLxE,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAGzC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAE7B,CAAC"}
1
+ {"version":3,"file":"generated-data.d.ts","sourceRoot":"","sources":["../src/generated-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAElH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA68HrD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAsC3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAoMnE,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwChD,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoLxE,CAAC;AAEF,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAGzC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAE7B,CAAC"}