@shipfox/react-ui 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/.turbo/turbo-check.log +2 -2
  3. package/.turbo/turbo-type.log +1 -1
  4. package/CHANGELOG.md +6 -0
  5. package/dist/components/calendar/calendar.d.ts +5 -0
  6. package/dist/components/calendar/calendar.d.ts.map +1 -0
  7. package/dist/components/calendar/calendar.js +46 -0
  8. package/dist/components/calendar/calendar.js.map +1 -0
  9. package/dist/components/calendar/index.d.ts +2 -0
  10. package/dist/components/calendar/index.d.ts.map +1 -0
  11. package/dist/components/calendar/index.js +3 -0
  12. package/dist/components/calendar/index.js.map +1 -0
  13. package/dist/components/date-picker/date-picker.d.ts +19 -0
  14. package/dist/components/date-picker/date-picker.d.ts.map +1 -0
  15. package/dist/components/date-picker/date-picker.js +114 -0
  16. package/dist/components/date-picker/date-picker.js.map +1 -0
  17. package/dist/components/date-picker/date-picker.stories.js +333 -0
  18. package/dist/components/date-picker/date-picker.stories.js.map +1 -0
  19. package/dist/components/date-picker/index.d.ts +2 -0
  20. package/dist/components/date-picker/index.d.ts.map +1 -0
  21. package/dist/components/date-picker/index.js +3 -0
  22. package/dist/components/date-picker/index.js.map +1 -0
  23. package/dist/components/date-time-range-picker/date-time-range-picker.d.ts +24 -0
  24. package/dist/components/date-time-range-picker/date-time-range-picker.d.ts.map +1 -0
  25. package/dist/components/date-time-range-picker/date-time-range-picker.js +130 -0
  26. package/dist/components/date-time-range-picker/date-time-range-picker.js.map +1 -0
  27. package/dist/components/date-time-range-picker/index.d.ts +2 -0
  28. package/dist/components/date-time-range-picker/index.d.ts.map +1 -0
  29. package/dist/components/date-time-range-picker/index.js +3 -0
  30. package/dist/components/date-time-range-picker/index.js.map +1 -0
  31. package/dist/components/index.d.ts +4 -0
  32. package/dist/components/index.d.ts.map +1 -1
  33. package/dist/components/index.js +4 -0
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/inline-tips/inline-tips.stories.js +5 -0
  36. package/dist/components/inline-tips/inline-tips.stories.js.map +1 -1
  37. package/dist/components/item/item.stories.js +15 -8
  38. package/dist/components/item/item.stories.js.map +1 -1
  39. package/dist/components/modal/modal.stories.js +14 -6
  40. package/dist/components/modal/modal.stories.js.map +1 -1
  41. package/dist/components/popover/index.d.ts +2 -0
  42. package/dist/components/popover/index.d.ts.map +1 -0
  43. package/dist/components/popover/index.js +3 -0
  44. package/dist/components/popover/index.js.map +1 -0
  45. package/dist/components/popover/popover.d.ts +10 -0
  46. package/dist/components/popover/popover.d.ts.map +1 -0
  47. package/dist/components/popover/popover.js +47 -0
  48. package/dist/components/popover/popover.js.map +1 -0
  49. package/dist/components/textarea/textarea.stories.js +8 -2
  50. package/dist/components/textarea/textarea.stories.js.map +1 -1
  51. package/dist/styles.css +1 -1
  52. package/package.json +1 -1
  53. package/src/components/calendar/calendar.tsx +90 -0
  54. package/src/components/calendar/index.ts +1 -0
  55. package/src/components/date-picker/date-picker.stories.tsx +230 -0
  56. package/src/components/date-picker/date-picker.tsx +179 -0
  57. package/src/components/date-picker/index.ts +1 -0
  58. package/src/components/date-time-range-picker/date-time-range-picker.tsx +211 -0
  59. package/src/components/date-time-range-picker/index.ts +1 -0
  60. package/src/components/index.ts +4 -0
  61. package/src/components/inline-tips/inline-tips.stories.tsx +5 -0
  62. package/src/components/item/item.stories.tsx +65 -56
  63. package/src/components/modal/modal.stories.tsx +16 -6
  64. package/src/components/popover/index.ts +1 -0
  65. package/src/components/popover/popover.tsx +60 -0
  66. package/src/components/textarea/textarea.stories.tsx +8 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './alert';\nexport * from './avatar';\nexport * from './badge';\nexport * from './button';\nexport * from './checkbox';\nexport * from './code-block';\nexport * from './dot-grid';\nexport * from './dropdown-menu';\nexport * from './dynamic-item';\nexport * from './form';\nexport * from './icon';\nexport * from './inline-tips';\nexport * from './input';\nexport * from './item';\nexport * from './label';\nexport * from './modal';\nexport * from './textarea';\nexport * from './theme';\nexport * from './toast';\nexport * from './tooltip';\nexport * from './typography';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,aAAa;AAC3B,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,eAAe"}
1
+ {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './alert';\nexport * from './avatar';\nexport * from './badge';\nexport * from './button';\nexport * from './calendar';\nexport * from './checkbox';\nexport * from './code-block';\nexport * from './date-picker';\nexport * from './date-time-range-picker';\nexport * from './dot-grid';\nexport * from './dropdown-menu';\nexport * from './dynamic-item';\nexport * from './form';\nexport * from './icon';\nexport * from './inline-tips';\nexport * from './input';\nexport * from './item';\nexport * from './label';\nexport * from './modal';\nexport * from './popover';\nexport * from './textarea';\nexport * from './theme';\nexport * from './toast';\nexport * from './tooltip';\nexport * from './typography';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,aAAa;AAC3B,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,eAAe"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { argosScreenshot } from '@argos-ci/storybook/vitest';
2
3
  import { Code, Header } from '../../components/typography/index.js';
3
4
  import { InlineTips, InlineTipsAction, InlineTipsActions, InlineTipsContent, InlineTipsDescription, InlineTipsTitle } from './inline-tips.js';
4
5
  const meta = {
@@ -42,6 +43,10 @@ const variants = [
42
43
  'secondary'
43
44
  ];
44
45
  export const Default = {
46
+ play: async (ctx)=>{
47
+ await new Promise((resolve)=>setTimeout(resolve, 100));
48
+ await argosScreenshot(ctx, 'InlineTips Default');
49
+ },
45
50
  render: (args)=>{
46
51
  return /*#__PURE__*/ _jsxs(InlineTips, {
47
52
  ...args,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/inline-tips/inline-tips.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {\n InlineTips,\n InlineTipsAction,\n InlineTipsActions,\n InlineTipsContent,\n InlineTipsDescription,\n InlineTipsTitle,\n} from './inline-tips';\n\nconst meta = {\n title: 'Components/InlineTips',\n component: InlineTips,\n tags: ['autodocs'],\n argTypes: {\n type: {\n control: 'select',\n options: ['default', 'info', 'success', 'error'],\n },\n variant: {\n control: 'select',\n options: ['primary', 'secondary'],\n },\n },\n args: {\n type: 'default',\n variant: 'primary',\n },\n} satisfies Meta<typeof InlineTips>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nconst types = ['default', 'info', 'success', 'error'] as const;\nconst variants = ['primary', 'secondary'] as const;\n\nexport const Default: Story = {\n render: (args) => {\n return (\n <InlineTips {...args}>\n <InlineTipsContent>\n <InlineTipsTitle>Title</InlineTipsTitle>\n <InlineTipsDescription>Description</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant={args.variant}>Label</InlineTipsAction>\n <InlineTipsAction variant={args.variant}>Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n );\n },\n};\n\nexport const Variants: Story = {\n render: () => {\n return (\n <div className=\"flex flex-col gap-16\">\n {variants.map((variant) => (\n <InlineTips key={variant} type=\"default\" variant={variant}>\n <InlineTipsContent>\n <InlineTipsTitle>Title</InlineTipsTitle>\n <InlineTipsDescription>Description</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n </div>\n );\n },\n};\n\nexport const DesignMock: Story = {\n render: () => {\n const content = {\n default: {title: 'Title', description: 'Description'},\n info: {title: 'Title', description: 'Description'},\n success: {title: 'Title', description: 'Description'},\n error: {title: 'Title', description: 'Description'},\n };\n\n return (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-subtle\">\n INLINE TIPS\n </Header>\n <div className=\"flex flex-col gap-16\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Primary\n </Code>\n {types.map((type) => (\n <InlineTips key={type} type={type} variant=\"primary\">\n <InlineTipsContent>\n <InlineTipsTitle>{content[type].title}</InlineTipsTitle>\n <InlineTipsDescription>{content[type].description}</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Secondary\n </Code>\n {types.map((type) => (\n <InlineTips key={type} type={type} variant=\"secondary\">\n <InlineTipsContent>\n <InlineTipsTitle>{content[type].title}</InlineTipsTitle>\n <InlineTipsDescription>{content[type].description}</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n </div>\n </div>\n );\n },\n};\n"],"names":["Code","Header","InlineTips","InlineTipsAction","InlineTipsActions","InlineTipsContent","InlineTipsDescription","InlineTipsTitle","meta","title","component","tags","argTypes","type","control","options","variant","args","types","variants","Default","render","Variants","div","className","map","DesignMock","content","default","description","info","success","error"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/inline-tips/inline-tips.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {\n InlineTips,\n InlineTipsAction,\n InlineTipsActions,\n InlineTipsContent,\n InlineTipsDescription,\n InlineTipsTitle,\n} from './inline-tips';\n\nconst meta = {\n title: 'Components/InlineTips',\n component: InlineTips,\n tags: ['autodocs'],\n argTypes: {\n type: {\n control: 'select',\n options: ['default', 'info', 'success', 'error'],\n },\n variant: {\n control: 'select',\n options: ['primary', 'secondary'],\n },\n },\n args: {\n type: 'default',\n variant: 'primary',\n },\n} satisfies Meta<typeof InlineTips>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nconst types = ['default', 'info', 'success', 'error'] as const;\nconst variants = ['primary', 'secondary'] as const;\n\nexport const Default: Story = {\n play: async (ctx) => {\n await new Promise((resolve) => setTimeout(resolve, 100));\n await argosScreenshot(ctx, 'InlineTips Default');\n },\n render: (args) => {\n return (\n <InlineTips {...args}>\n <InlineTipsContent>\n <InlineTipsTitle>Title</InlineTipsTitle>\n <InlineTipsDescription>Description</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant={args.variant}>Label</InlineTipsAction>\n <InlineTipsAction variant={args.variant}>Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n );\n },\n};\n\nexport const Variants: Story = {\n render: () => {\n return (\n <div className=\"flex flex-col gap-16\">\n {variants.map((variant) => (\n <InlineTips key={variant} type=\"default\" variant={variant}>\n <InlineTipsContent>\n <InlineTipsTitle>Title</InlineTipsTitle>\n <InlineTipsDescription>Description</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n </div>\n );\n },\n};\n\nexport const DesignMock: Story = {\n render: () => {\n const content = {\n default: {title: 'Title', description: 'Description'},\n info: {title: 'Title', description: 'Description'},\n success: {title: 'Title', description: 'Description'},\n error: {title: 'Title', description: 'Description'},\n };\n\n return (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32 bg-background-neutral-base\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-subtle\">\n INLINE TIPS\n </Header>\n <div className=\"flex flex-col gap-16\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Primary\n </Code>\n {types.map((type) => (\n <InlineTips key={type} type={type} variant=\"primary\">\n <InlineTipsContent>\n <InlineTipsTitle>{content[type].title}</InlineTipsTitle>\n <InlineTipsDescription>{content[type].description}</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Secondary\n </Code>\n {types.map((type) => (\n <InlineTips key={type} type={type} variant=\"secondary\">\n <InlineTipsContent>\n <InlineTipsTitle>{content[type].title}</InlineTipsTitle>\n <InlineTipsDescription>{content[type].description}</InlineTipsDescription>\n </InlineTipsContent>\n <InlineTipsActions>\n <InlineTipsAction variant=\"primary\">Label</InlineTipsAction>\n <InlineTipsAction variant=\"secondary\">Label</InlineTipsAction>\n </InlineTipsActions>\n </InlineTips>\n ))}\n </div>\n </div>\n );\n },\n};\n"],"names":["argosScreenshot","Code","Header","InlineTips","InlineTipsAction","InlineTipsActions","InlineTipsContent","InlineTipsDescription","InlineTipsTitle","meta","title","component","tags","argTypes","type","control","options","variant","args","types","variants","Default","play","ctx","Promise","resolve","setTimeout","render","Variants","div","className","map","DesignMock","content","default","description","info","success","error"],"mappings":";AAAA,SAAQA,eAAe,QAAO,6BAA6B;AAE3D,SAAQC,IAAI,EAAEC,MAAM,QAAO,wBAAwB;AACnD,SACEC,UAAU,EACVC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,qBAAqB,EACrBC,eAAe,QACV,gBAAgB;AAEvB,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWR;IACXS,MAAM;QAAC;KAAW;IAClBC,UAAU;QACRC,MAAM;YACJC,SAAS;YACTC,SAAS;gBAAC;gBAAW;gBAAQ;gBAAW;aAAQ;QAClD;QACAC,SAAS;YACPF,SAAS;YACTC,SAAS;gBAAC;gBAAW;aAAY;QACnC;IACF;IACAE,MAAM;QACJJ,MAAM;QACNG,SAAS;IACX;AACF;AAEA,eAAeR,KAAK;AAIpB,MAAMU,QAAQ;IAAC;IAAW;IAAQ;IAAW;CAAQ;AACrD,MAAMC,WAAW;IAAC;IAAW;CAAY;AAEzC,OAAO,MAAMC,UAAiB;IAC5BC,MAAM,OAAOC;QACX,MAAM,IAAIC,QAAQ,CAACC,UAAYC,WAAWD,SAAS;QACnD,MAAMzB,gBAAgBuB,KAAK;IAC7B;IACAI,QAAQ,CAACT;QACP,qBACE,MAACf;YAAY,GAAGe,IAAI;;8BAClB,MAACZ;;sCACC,KAACE;sCAAgB;;sCACjB,KAACD;sCAAsB;;;;8BAEzB,MAACF;;sCACC,KAACD;4BAAiBa,SAASC,KAAKD,OAAO;sCAAE;;sCACzC,KAACb;4BAAiBa,SAASC,KAAKD,OAAO;sCAAE;;;;;;IAIjD;AACF,EAAE;AAEF,OAAO,MAAMW,WAAkB;IAC7BD,QAAQ;QACN,qBACE,KAACE;YAAIC,WAAU;sBACZV,SAASW,GAAG,CAAC,CAACd,wBACb,MAACd;oBAAyBW,MAAK;oBAAUG,SAASA;;sCAChD,MAACX;;8CACC,KAACE;8CAAgB;;8CACjB,KAACD;8CAAsB;;;;sCAEzB,MAACF;;8CACC,KAACD;oCAAiBa,SAAQ;8CAAU;;8CACpC,KAACb;oCAAiBa,SAAQ;8CAAY;;;;;mBAPzBA;;IAazB;AACF,EAAE;AAEF,OAAO,MAAMe,aAAoB;IAC/BL,QAAQ;QACN,MAAMM,UAAU;YACdC,SAAS;gBAACxB,OAAO;gBAASyB,aAAa;YAAa;YACpDC,MAAM;gBAAC1B,OAAO;gBAASyB,aAAa;YAAa;YACjDE,SAAS;gBAAC3B,OAAO;gBAASyB,aAAa;YAAa;YACpDG,OAAO;gBAAC5B,OAAO;gBAASyB,aAAa;YAAa;QACpD;QAEA,qBACE,MAACN;YAAIC,WAAU;;8BACb,KAAC5B;oBAAOe,SAAQ;oBAAKa,WAAU;8BAAiC;;8BAGhE,MAACD;oBAAIC,WAAU;;sCACb,KAAC7B;4BAAKgB,SAAQ;4BAAQa,WAAU;sCAAiC;;wBAGhEX,MAAMY,GAAG,CAAC,CAACjB,qBACV,MAACX;gCAAsBW,MAAMA;gCAAMG,SAAQ;;kDACzC,MAACX;;0DACC,KAACE;0DAAiByB,OAAO,CAACnB,KAAK,CAACJ,KAAK;;0DACrC,KAACH;0DAAuB0B,OAAO,CAACnB,KAAK,CAACqB,WAAW;;;;kDAEnD,MAAC9B;;0DACC,KAACD;gDAAiBa,SAAQ;0DAAU;;0DACpC,KAACb;gDAAiBa,SAAQ;0DAAY;;;;;+BAPzBH;sCAWnB,KAACb;4BAAKgB,SAAQ;4BAAQa,WAAU;sCAAiC;;wBAGhEX,MAAMY,GAAG,CAAC,CAACjB,qBACV,MAACX;gCAAsBW,MAAMA;gCAAMG,SAAQ;;kDACzC,MAACX;;0DACC,KAACE;0DAAiByB,OAAO,CAACnB,KAAK,CAACJ,KAAK;;0DACrC,KAACH;0DAAuB0B,OAAO,CAACnB,KAAK,CAACqB,WAAW;;;;kDAEnD,MAAC9B;;0DACC,KAACD;gDAAiBa,SAAQ;0DAAU;;0DACpC,KAACb;gDAAiBa,SAAQ;0DAAY;;;;;+BAPzBH;;;;;IAc3B;AACF,EAAE"}
@@ -1,8 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from '../../components/button/button.js';
3
+ import { DatePicker } from '../../components/date-picker/index.js';
3
4
  import { Icon } from '../../components/icon/icon.js';
4
5
  import { Input } from '../../components/input/input.js';
5
6
  import { Label } from '../../components/label/label.js';
7
+ import { useState } from 'react';
6
8
  import { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemSeparator, ItemTitle } from './item.js';
7
9
  const meta = {
8
10
  title: 'Components/Item',
@@ -32,6 +34,7 @@ const meta = {
32
34
  }
33
35
  };
34
36
  export default meta;
37
+ const DEFAULT_START_DATE = new Date('2024-01-01T00:00:00.000Z');
35
38
  export const Default = {
36
39
  args: {
37
40
  variant: 'default'
@@ -119,7 +122,9 @@ export const Variants = {
119
122
  };
120
123
  export const ImportPastJobsModal = {
121
124
  args: {},
122
- render: ()=>/*#__PURE__*/ _jsx("div", {
125
+ render: ()=>{
126
+ const [date, setDate] = useState(DEFAULT_START_DATE);
127
+ return /*#__PURE__*/ _jsx("div", {
123
128
  className: "flex w-full max-w-lg flex-col",
124
129
  children: /*#__PURE__*/ _jsxs(Item, {
125
130
  variant: "neutral",
@@ -129,7 +134,7 @@ export const ImportPastJobsModal = {
129
134
  children: [
130
135
  /*#__PURE__*/ _jsx(ItemTitle, {
131
136
  className: "text-lg font-medium text-foreground-neutral-base",
132
- children: "Import past jobs from Github"
137
+ children: "Import past jobs from GitHub"
133
138
  }),
134
139
  /*#__PURE__*/ _jsxs("div", {
135
140
  className: "flex items-center gap-8",
@@ -156,7 +161,7 @@ export const ImportPastJobsModal = {
156
161
  children: [
157
162
  /*#__PURE__*/ _jsx(ItemDescription, {
158
163
  className: "mb-16 text-sm text-foreground-neutral-subtle",
159
- children: "Backfill your CI history by importing past runs from your Github repo. We'll handle the rest by creating a background task to import the data for you."
164
+ children: "Backfill your CI history by importing past runs from your GitHub repo. We'll handle the rest by creating a background task to import the data for you."
160
165
  }),
161
166
  /*#__PURE__*/ _jsxs("div", {
162
167
  className: "flex flex-col gap-20",
@@ -196,11 +201,12 @@ export const ImportPastJobsModal = {
196
201
  htmlFor: "start-date",
197
202
  children: "Start date"
198
203
  }),
199
- /*#__PURE__*/ _jsx(Input, {
204
+ /*#__PURE__*/ _jsx(DatePicker, {
200
205
  id: "start-date",
201
- type: "datetime-local",
202
- defaultValue: "September 5th, 2025",
203
- className: "pl-32"
206
+ date: date,
207
+ onDateSelect: setDate,
208
+ onClear: ()=>setDate(undefined),
209
+ placeholder: "DD/MM/YYYY"
204
210
  })
205
211
  ]
206
212
  })
@@ -226,7 +232,8 @@ export const ImportPastJobsModal = {
226
232
  })
227
233
  ]
228
234
  })
229
- })
235
+ });
236
+ }
230
237
  };
231
238
 
232
239
  //# sourceMappingURL=item.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/item/item.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Button} from 'components/button/button';\nimport {Icon} from 'components/icon/icon';\nimport {Input} from 'components/input/input';\nimport {Label} from 'components/label/label';\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemSeparator,\n ItemTitle,\n} from './item';\n\nconst meta = {\n title: 'Components/Item',\n component: Item,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['default', 'neutral'],\n },\n size: {\n control: 'select',\n options: ['default', 'sm'],\n },\n },\n args: {\n variant: 'default',\n size: 'default',\n },\n} satisfies Meta<typeof Item>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n args: {\n variant: 'default',\n },\n render: (args) => (\n <Item {...args} className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Basic Item</ItemTitle>\n <ItemDescription>A simple item with title and description.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"secondary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n ),\n};\n\nexport const Variants: Story = {\n args: {},\n render: () => (\n <ItemGroup className=\"flex w-full max-w-md flex-col gap-12\">\n <Item variant=\"default\" className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Default Variant</ItemTitle>\n <ItemDescription>Standard styling with subtle background and borders.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"secondary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n <Item variant=\"neutral\" className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Neutral Variant</ItemTitle>\n <ItemDescription>Neutral style with subtle background and borders.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"primary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n </ItemGroup>\n ),\n};\n\nexport const ImportPastJobsModal: Story = {\n args: {},\n render: () => (\n <div className=\"flex w-full max-w-lg flex-col\">\n <Item variant=\"neutral\">\n <ItemHeader className=\"justify-between px-24 py-16\">\n <ItemTitle className=\"text-lg font-medium text-foreground-neutral-base\">\n Import past jobs from Github\n </ItemTitle>\n <div className=\"flex items-center gap-8\">\n <kbd className=\"flex items-center justify-center rounded-8 border border-border-neutral-base shadow-button-neutral bg-background-field-base text-xs text-foreground-neutral-subtle px-4\">\n esc\n </kbd>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n className=\"rounded-4 p-2 cursor-pointer bg-transparent border-none text-foreground-neutral-muted hover:text-foreground-neutral-base hover:bg-background-components-hover transition-colors duration-150 outline-none focus-visible:ring-2 focus-visible:ring-background-accent-blue-base focus-visible:ring-offset-2 w-24 h-24\"\n >\n <Icon name=\"close\" />\n </Button>\n </div>\n </ItemHeader>\n <ItemSeparator />\n <ItemContent className=\"px-24 py-16\">\n <ItemDescription className=\"mb-16 text-sm text-foreground-neutral-subtle\">\n Backfill your CI history by importing past runs from your Github repo. We'll handle the\n rest by creating a background task to import the data for you.\n </ItemDescription>\n <div className=\"flex flex-col gap-20\">\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"repo-owner\">Repository owner</Label>\n <Input id=\"repo-owner\" type=\"text\" defaultValue=\"apache\" />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"repo-name\">Repository name</Label>\n <Input id=\"repo-name\" type=\"text\" defaultValue=\"kafka\" />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"start-date\">Start date</Label>\n <Input\n id=\"start-date\"\n type=\"datetime-local\"\n defaultValue=\"September 5th, 2025\"\n className=\"pl-32\"\n />\n </div>\n </div>\n </ItemContent>\n <ItemSeparator />\n <ItemFooter className=\"justify-end gap-8 px-24 py-16\">\n <Button variant=\"transparent\" size=\"sm\">\n Cancel\n </Button>\n <Button variant=\"primary\" size=\"sm\">\n Import\n </Button>\n </ItemFooter>\n </Item>\n </div>\n ),\n};\n"],"names":["Button","Icon","Input","Label","Item","ItemActions","ItemContent","ItemDescription","ItemFooter","ItemGroup","ItemHeader","ItemSeparator","ItemTitle","meta","title","component","tags","argTypes","variant","control","options","size","args","Default","render","className","Variants","ImportPastJobsModal","div","kbd","name","htmlFor","id","type","defaultValue"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/item/item.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Button} from 'components/button/button';\nimport {DatePicker} from 'components/date-picker';\nimport {Icon} from 'components/icon/icon';\nimport {Input} from 'components/input/input';\nimport {Label} from 'components/label/label';\nimport {useState} from 'react';\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemSeparator,\n ItemTitle,\n} from './item';\n\nconst meta = {\n title: 'Components/Item',\n component: Item,\n tags: ['autodocs'],\n argTypes: {\n variant: {\n control: 'select',\n options: ['default', 'neutral'],\n },\n size: {\n control: 'select',\n options: ['default', 'sm'],\n },\n },\n args: {\n variant: 'default',\n size: 'default',\n },\n} satisfies Meta<typeof Item>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nconst DEFAULT_START_DATE = new Date('2024-01-01T00:00:00.000Z');\n\nexport const Default: Story = {\n args: {\n variant: 'default',\n },\n render: (args) => (\n <Item {...args} className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Basic Item</ItemTitle>\n <ItemDescription>A simple item with title and description.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"secondary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n ),\n};\n\nexport const Variants: Story = {\n args: {},\n render: () => (\n <ItemGroup className=\"flex w-full max-w-md flex-col gap-12\">\n <Item variant=\"default\" className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Default Variant</ItemTitle>\n <ItemDescription>Standard styling with subtle background and borders.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"secondary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n <Item variant=\"neutral\" className=\"px-12 py-12\">\n <ItemContent>\n <ItemTitle>Neutral Variant</ItemTitle>\n <ItemDescription>Neutral style with subtle background and borders.</ItemDescription>\n </ItemContent>\n <ItemActions className=\"pt-8\">\n <Button variant=\"primary\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n </ItemGroup>\n ),\n};\n\nexport const ImportPastJobsModal: Story = {\n args: {},\n render: () => {\n const [date, setDate] = useState<Date | undefined>(DEFAULT_START_DATE);\n\n return (\n <div className=\"flex w-full max-w-lg flex-col\">\n <Item variant=\"neutral\">\n <ItemHeader className=\"justify-between px-24 py-16\">\n <ItemTitle className=\"text-lg font-medium text-foreground-neutral-base\">\n Import past jobs from GitHub\n </ItemTitle>\n <div className=\"flex items-center gap-8\">\n <kbd className=\"flex items-center justify-center rounded-8 border border-border-neutral-base shadow-button-neutral bg-background-field-base text-xs text-foreground-neutral-subtle px-4\">\n esc\n </kbd>\n <Button\n variant=\"transparent\"\n size=\"xs\"\n className=\"rounded-4 p-2 cursor-pointer bg-transparent border-none text-foreground-neutral-muted hover:text-foreground-neutral-base hover:bg-background-components-hover transition-colors duration-150 outline-none focus-visible:ring-2 focus-visible:ring-background-accent-blue-base focus-visible:ring-offset-2 w-24 h-24\"\n >\n <Icon name=\"close\" />\n </Button>\n </div>\n </ItemHeader>\n <ItemSeparator />\n <ItemContent className=\"px-24 py-16\">\n <ItemDescription className=\"mb-16 text-sm text-foreground-neutral-subtle\">\n Backfill your CI history by importing past runs from your GitHub repo. We'll handle\n the rest by creating a background task to import the data for you.\n </ItemDescription>\n <div className=\"flex flex-col gap-20\">\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"repo-owner\">Repository owner</Label>\n <Input id=\"repo-owner\" type=\"text\" defaultValue=\"apache\" />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"repo-name\">Repository name</Label>\n <Input id=\"repo-name\" type=\"text\" defaultValue=\"kafka\" />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Label htmlFor=\"start-date\">Start date</Label>\n <DatePicker\n id=\"start-date\"\n date={date}\n onDateSelect={setDate}\n onClear={() => setDate(undefined)}\n placeholder=\"DD/MM/YYYY\"\n />\n </div>\n </div>\n </ItemContent>\n <ItemSeparator />\n <ItemFooter className=\"justify-end gap-8 px-24 py-16\">\n <Button variant=\"transparent\" size=\"sm\">\n Cancel\n </Button>\n <Button variant=\"primary\" size=\"sm\">\n Import\n </Button>\n </ItemFooter>\n </Item>\n </div>\n );\n },\n};\n"],"names":["Button","DatePicker","Icon","Input","Label","useState","Item","ItemActions","ItemContent","ItemDescription","ItemFooter","ItemGroup","ItemHeader","ItemSeparator","ItemTitle","meta","title","component","tags","argTypes","variant","control","options","size","args","DEFAULT_START_DATE","Date","Default","render","className","Variants","ImportPastJobsModal","date","setDate","div","kbd","name","htmlFor","id","type","defaultValue","onDateSelect","onClear","undefined","placeholder"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { screen, within } from '@testing-library/react';
4
4
  import userEvent from '@testing-library/user-event';
5
5
  import { Button, ButtonLink } from '../../components/button/index.js';
6
6
  import { CodeBlock, CodeBlockBody, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockFiles, CodeBlockFooter, CodeBlockHeader, CodeBlockItem } from '../../components/code-block/index.js';
7
+ import { DatePicker } from '../../components/date-picker/index.js';
7
8
  import { DynamicItem } from '../../components/dynamic-item/index.js';
8
9
  import { Icon } from '../../components/icon/index.js';
9
10
  import { Input } from '../../components/input/index.js';
@@ -19,6 +20,7 @@ import { Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, ModalTitle, M
19
20
  const OPEN_MODAL_REGEX = /open modal/i;
20
21
  const IMPORT_JOBS_REGEX = /import past jobs from github/i;
21
22
  const GITHUB_ACTIONS_REGEX = /run github actions on shipfox/i;
23
+ const DEFAULT_START_DATE = new Date('2025-12-06T00:00:00.000Z');
22
24
  const meta = {
23
25
  title: 'Components/Modal',
24
26
  component: Modal,
@@ -122,6 +124,7 @@ export const ImportForm = {
122
124
  },
123
125
  render: ()=>{
124
126
  const [open, setOpen] = useState(false);
127
+ const [date, setDate] = useState(DEFAULT_START_DATE);
125
128
  return /*#__PURE__*/ _jsx("div", {
126
129
  className: "flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip",
127
130
  children: /*#__PURE__*/ _jsxs(Modal, {
@@ -131,7 +134,7 @@ export const ImportForm = {
131
134
  /*#__PURE__*/ _jsx(ModalTrigger, {
132
135
  asChild: true,
133
136
  children: /*#__PURE__*/ _jsx(Button, {
134
- children: "Import past jobs from Github"
137
+ children: "Import past jobs from GitHub"
135
138
  })
136
139
  }),
137
140
  /*#__PURE__*/ _jsxs(ModalContent, {
@@ -139,10 +142,10 @@ export const ImportForm = {
139
142
  children: [
140
143
  /*#__PURE__*/ _jsx(ModalTitle, {
141
144
  className: "sr-only",
142
- children: "Import past jobs from Github"
145
+ children: "Import past jobs from GitHub"
143
146
  }),
144
147
  /*#__PURE__*/ _jsx(ModalHeader, {
145
- title: "Import past jobs from Github"
148
+ title: "Import past jobs from GitHub"
146
149
  }),
147
150
  /*#__PURE__*/ _jsxs(ModalBody, {
148
151
  className: "gap-20",
@@ -150,7 +153,7 @@ export const ImportForm = {
150
153
  /*#__PURE__*/ _jsx(Text, {
151
154
  size: "sm",
152
155
  className: "text-foreground-neutral-subtle w-full",
153
- children: "Backfill your CI history by importing past runs from your Github repo. We'll handle the rest by creating a background task to import the data for you."
156
+ children: "Backfill your CI history by importing past runs from your GitHub repo. We'll handle the rest by creating a background task to import the data for you."
154
157
  }),
155
158
  /*#__PURE__*/ _jsxs("div", {
156
159
  className: "flex flex-col gap-20 w-full",
@@ -181,10 +184,15 @@ export const ImportForm = {
181
184
  className: "flex flex-col gap-8 w-full",
182
185
  children: [
183
186
  /*#__PURE__*/ _jsx(Label, {
187
+ htmlFor: "start-date",
184
188
  children: "Start date"
185
189
  }),
186
- /*#__PURE__*/ _jsx(Input, {
187
- placeholder: "September 5th, 2025"
190
+ /*#__PURE__*/ _jsx(DatePicker, {
191
+ id: "start-date",
192
+ date: date,
193
+ onDateSelect: setDate,
194
+ onClear: ()=>setDate(undefined),
195
+ placeholder: "DD/MM/YYYY"
188
196
  })
189
197
  ]
190
198
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/modal/modal.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {screen, within} from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport {Button, ButtonLink} from 'components/button';\nimport {\n CodeBlock,\n CodeBlockBody,\n CodeBlockContent,\n CodeBlockCopyButton,\n CodeBlockFilename,\n CodeBlockFiles,\n CodeBlockFooter,\n CodeBlockHeader,\n CodeBlockItem,\n} from 'components/code-block';\nimport {DynamicItem} from 'components/dynamic-item';\nimport {Icon} from 'components/icon';\nimport {Input} from 'components/input';\nimport {ItemTitle} from 'components/item';\nimport {Label} from 'components/label';\nimport {MovingBorder} from 'components/moving-border';\nimport {Text} from 'components/typography';\nimport {useState} from 'react';\nimport {cn} from 'utils/cn';\nimport illustration2 from '../../assets/illustration-2.svg';\nimport illustrationBg from '../../assets/illustration-gradient.svg';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from './modal';\n\nconst OPEN_MODAL_REGEX = /open modal/i;\nconst IMPORT_JOBS_REGEX = /import past jobs from github/i;\nconst GITHUB_ACTIONS_REGEX = /run github actions on shipfox/i;\n\nconst meta = {\n title: 'Components/Modal',\n component: Modal,\n tags: ['autodocs'],\n parameters: {\n layout: 'centered',\n },\n} satisfies Meta<typeof Modal>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: OPEN_MODAL_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Default Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Open Modal</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Modal Title</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n className=\"flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Modal Title\n </Text>\n </ModalHeader>\n <ModalBody>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This modal automatically adapts between dialog (desktop) and drawer (mobile) based\n on screen size. Try resizing your browser window!\n </Text>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Confirm\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nexport const ImportForm: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: IMPORT_JOBS_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Import Form Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Import past jobs from Github</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Import past jobs from Github</ModalTitle>\n <ModalHeader title=\"Import past jobs from Github\" />\n <ModalBody className=\"gap-20\">\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n Backfill your CI history by importing past runs from your Github repo. We&apos;ll\n handle the rest by creating a background task to import the data for you.\n </Text>\n <div className=\"flex flex-col gap-20 w-full\">\n <div className=\"flex flex-col gap-8 w-full\">\n <Label>Repository owner</Label>\n <Input placeholder=\"apache\" />\n </div>\n <div className=\"flex flex-col gap-8 w-full\">\n <Label>Repository name</Label>\n <Input placeholder=\"kafka\" />\n </div>\n <div className=\"flex flex-col gap-8 w-full\">\n <Label>Start date</Label>\n <Input placeholder=\"September 5th, 2025\" />\n </div>\n </div>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Import\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nconst diffCode = `jobs:\n build:\n- runs-on: ubuntu-latest\n+ runs-on: shipfox-2vcpu-ubuntu-2404`;\n\nexport const GithubActions: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'large',\n },\n },\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: GITHUB_ACTIONS_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Github Actions Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[50vh] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Run GitHub Actions on Shipfox</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Run GitHub Actions on Shipfox</ModalTitle>\n <ModalHeader title=\"Run GitHub Actions on Shipfox\" />\n <ModalBody className=\"gap-32\">\n <div className=\"flex flex-col gap-20 w-full\">\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This will run your jobs on Shipfox&apos;s optimized infrastructure. Giving you\n faster builds, and dedicated resources.\n </Text>\n <div className=\"relative\">\n <img\n src={illustration2}\n alt=\"illustration-2\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 translate-x-8 w-fit object-contain z-50\"\n />\n <div className={cn('relative overflow-hidden bg-transparent p-1 rounded-8')}>\n <div className=\"absolute inset-0\" style={{borderRadius: 'calc(0.5rem * 0.96)'}}>\n <MovingBorder duration={6000} rx=\"30%\" ry=\"30%\">\n <div className=\"h-100 w-200 bg-[radial-gradient(#ff9e7a_40%,transparent_60%)]\" />\n </MovingBorder>\n </div>\n <div\n className=\"relative\"\n style={{\n borderRadius: 'calc(0.5rem * 0.96)',\n }}\n >\n <DynamicItem\n variant=\"default\"\n title={\n <div className=\"flex items-center gap-6\">\n <span className=\"flex shrink-0 items-center justify-center text-tag-success-icon w-16 h-16\">\n <Icon\n name=\"money\"\n size=\"sm\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </span>\n <ItemTitle>6000 free credits/month to run your jobs</ItemTitle>\n </div>\n }\n description=\"~500 builds/month. No payment required.\"\n rightElement={\n <img\n src={illustrationBg}\n alt=\"illustration-bg\"\n className=\"hidden sm:block absolute overflow-clip right-4 w-fit object-contain scale-105\"\n />\n }\n />\n </div>\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-20 w-full\">\n <div className=\"flex flex-col gap-6\">\n <div className=\"flex items-center justify-center w-full\">\n <Text className=\"flex-1 font-semibold text-foreground-neutral-base overflow-ellipsis overflow-hidden whitespace-nowrap\">\n Update your GitHub Actions workflow\n </Text>\n <ButtonLink variant=\"base\" size=\"sm\" href=\"#\" iconRight=\"bookOpen\">\n See docs\n </ButtonLink>\n </div>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n Replace the runs-on line in your workflow file to use Shipfox runners.\n </Text>\n </div>\n\n <CodeBlock\n data={[\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: diffCode,\n },\n ]}\n defaultValue=\"yaml\"\n >\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => (\n <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>\n )}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n <CodeBlockFooter\n state=\"running\"\n message=\"Waiting for Shipfox runner event…\"\n description=\"This usually takes 30-60 seconds after you commit the workflow file.\"\n />\n </CodeBlock>\n </div>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Got it\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nexport const OpenedModal: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: OPEN_MODAL_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Opened Modal State');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Open Modal</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Modal Title</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n className=\"flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Modal Title\n </Text>\n </ModalHeader>\n <ModalBody>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This modal automatically adapts between dialog (desktop) and drawer (mobile) based\n on screen size. Try resizing your browser window!\n </Text>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Confirm\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n"],"names":["argosScreenshot","screen","within","userEvent","Button","ButtonLink","CodeBlock","CodeBlockBody","CodeBlockContent","CodeBlockCopyButton","CodeBlockFilename","CodeBlockFiles","CodeBlockFooter","CodeBlockHeader","CodeBlockItem","DynamicItem","Icon","Input","ItemTitle","Label","MovingBorder","Text","useState","cn","illustration2","illustrationBg","Modal","ModalBody","ModalContent","ModalFooter","ModalHeader","ModalTitle","ModalTrigger","OPEN_MODAL_REGEX","IMPORT_JOBS_REGEX","GITHUB_ACTIONS_REGEX","meta","title","component","tags","parameters","layout","Default","play","ctx","canvasElement","step","canvas","user","setup","triggerButton","getByRole","name","click","findByRole","Promise","resolve","setTimeout","render","open","setOpen","div","className","onOpenChange","asChild","aria-describedby","undefined","size","variant","onClick","ImportForm","placeholder","diffCode","GithubActions","viewport","defaultViewport","img","src","alt","style","borderRadius","duration","rx","ry","span","color","description","rightElement","href","iconRight","data","language","filename","code","defaultValue","item","value","state","message","OpenedModal"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/modal/modal.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {screen, within} from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport {Button, ButtonLink} from 'components/button';\nimport {\n CodeBlock,\n CodeBlockBody,\n CodeBlockContent,\n CodeBlockCopyButton,\n CodeBlockFilename,\n CodeBlockFiles,\n CodeBlockFooter,\n CodeBlockHeader,\n CodeBlockItem,\n} from 'components/code-block';\nimport {DatePicker} from 'components/date-picker';\nimport {DynamicItem} from 'components/dynamic-item';\nimport {Icon} from 'components/icon';\nimport {Input} from 'components/input';\nimport {ItemTitle} from 'components/item';\nimport {Label} from 'components/label';\nimport {MovingBorder} from 'components/moving-border';\nimport {Text} from 'components/typography';\nimport {useState} from 'react';\nimport {cn} from 'utils/cn';\nimport illustration2 from '../../assets/illustration-2.svg';\nimport illustrationBg from '../../assets/illustration-gradient.svg';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from './modal';\n\nconst OPEN_MODAL_REGEX = /open modal/i;\nconst IMPORT_JOBS_REGEX = /import past jobs from github/i;\nconst GITHUB_ACTIONS_REGEX = /run github actions on shipfox/i;\n\nconst DEFAULT_START_DATE = new Date('2025-12-06T00:00:00.000Z');\n\nconst meta = {\n title: 'Components/Modal',\n component: Modal,\n tags: ['autodocs'],\n parameters: {\n layout: 'centered',\n },\n} satisfies Meta<typeof Modal>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: OPEN_MODAL_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Default Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Open Modal</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Modal Title</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n className=\"flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Modal Title\n </Text>\n </ModalHeader>\n <ModalBody>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This modal automatically adapts between dialog (desktop) and drawer (mobile) based\n on screen size. Try resizing your browser window!\n </Text>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Confirm\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nexport const ImportForm: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: IMPORT_JOBS_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Import Form Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n const [date, setDate] = useState<Date | undefined>(DEFAULT_START_DATE);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Import past jobs from GitHub</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Import past jobs from GitHub</ModalTitle>\n <ModalHeader title=\"Import past jobs from GitHub\" />\n <ModalBody className=\"gap-20\">\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n Backfill your CI history by importing past runs from your GitHub repo. We&apos;ll\n handle the rest by creating a background task to import the data for you.\n </Text>\n <div className=\"flex flex-col gap-20 w-full\">\n <div className=\"flex flex-col gap-8 w-full\">\n <Label>Repository owner</Label>\n <Input placeholder=\"apache\" />\n </div>\n <div className=\"flex flex-col gap-8 w-full\">\n <Label>Repository name</Label>\n <Input placeholder=\"kafka\" />\n </div>\n <div className=\"flex flex-col gap-8 w-full\">\n <Label htmlFor=\"start-date\">Start date</Label>\n <DatePicker\n id=\"start-date\"\n date={date}\n onDateSelect={setDate}\n onClear={() => setDate(undefined)}\n placeholder=\"DD/MM/YYYY\"\n />\n </div>\n </div>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Import\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nconst diffCode = `jobs:\n build:\n- runs-on: ubuntu-latest\n+ runs-on: shipfox-2vcpu-ubuntu-2404`;\n\nexport const GithubActions: Story = {\n parameters: {\n viewport: {\n defaultViewport: 'large',\n },\n },\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: GITHUB_ACTIONS_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Github Actions Modal Open');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[50vh] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Run GitHub Actions on Shipfox</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Run GitHub Actions on Shipfox</ModalTitle>\n <ModalHeader title=\"Run GitHub Actions on Shipfox\" />\n <ModalBody className=\"gap-32\">\n <div className=\"flex flex-col gap-20 w-full\">\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This will run your jobs on Shipfox&apos;s optimized infrastructure. Giving you\n faster builds, and dedicated resources.\n </Text>\n <div className=\"relative\">\n <img\n src={illustration2}\n alt=\"illustration-2\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 translate-x-8 w-fit object-contain z-50\"\n />\n <div className={cn('relative overflow-hidden bg-transparent p-1 rounded-8')}>\n <div className=\"absolute inset-0\" style={{borderRadius: 'calc(0.5rem * 0.96)'}}>\n <MovingBorder duration={6000} rx=\"30%\" ry=\"30%\">\n <div className=\"h-100 w-200 bg-[radial-gradient(#ff9e7a_40%,transparent_60%)]\" />\n </MovingBorder>\n </div>\n <div\n className=\"relative\"\n style={{\n borderRadius: 'calc(0.5rem * 0.96)',\n }}\n >\n <DynamicItem\n variant=\"default\"\n title={\n <div className=\"flex items-center gap-6\">\n <span className=\"flex shrink-0 items-center justify-center text-tag-success-icon w-16 h-16\">\n <Icon\n name=\"money\"\n size=\"sm\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </span>\n <ItemTitle>6000 free credits/month to run your jobs</ItemTitle>\n </div>\n }\n description=\"~500 builds/month. No payment required.\"\n rightElement={\n <img\n src={illustrationBg}\n alt=\"illustration-bg\"\n className=\"hidden sm:block absolute overflow-clip right-4 w-fit object-contain scale-105\"\n />\n }\n />\n </div>\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-20 w-full\">\n <div className=\"flex flex-col gap-6\">\n <div className=\"flex items-center justify-center w-full\">\n <Text className=\"flex-1 font-semibold text-foreground-neutral-base overflow-ellipsis overflow-hidden whitespace-nowrap\">\n Update your GitHub Actions workflow\n </Text>\n <ButtonLink variant=\"base\" size=\"sm\" href=\"#\" iconRight=\"bookOpen\">\n See docs\n </ButtonLink>\n </div>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n Replace the runs-on line in your workflow file to use Shipfox runners.\n </Text>\n </div>\n\n <CodeBlock\n data={[\n {\n language: 'yaml',\n filename: '.github/workflows/<workflow-name>.yml',\n code: diffCode,\n },\n ]}\n defaultValue=\"yaml\"\n >\n <CodeBlockHeader>\n <CodeBlockFiles>\n {(item) => (\n <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>\n )}\n </CodeBlockFiles>\n <CodeBlockCopyButton />\n </CodeBlockHeader>\n <CodeBlockBody>\n {(item) => (\n <CodeBlockItem value={item.language}>\n <CodeBlockContent language={item.language}>{item.code}</CodeBlockContent>\n </CodeBlockItem>\n )}\n </CodeBlockBody>\n <CodeBlockFooter\n state=\"running\"\n message=\"Waiting for Shipfox runner event…\"\n description=\"This usually takes 30-60 seconds after you commit the workflow file.\"\n />\n </CodeBlock>\n </div>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Got it\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n\nexport const OpenedModal: Story = {\n play: async (ctx) => {\n const {canvasElement, step} = ctx;\n const canvas = within(canvasElement);\n const user = userEvent.setup();\n\n await step('Open the modal', async () => {\n const triggerButton = canvas.getByRole('button', {name: OPEN_MODAL_REGEX});\n await user.click(triggerButton);\n });\n\n await step('Wait for dialog to appear and render', async () => {\n await screen.findByRole('dialog');\n await new Promise((resolve) => setTimeout(resolve, 100));\n });\n\n await argosScreenshot(ctx, 'Opened Modal State');\n },\n render: () => {\n const [open, setOpen] = useState(false);\n\n return (\n <div className=\"flex h-[calc(100vh/2)] w-[calc(100vw/2)] items-center justify-center rounded-16 bg-background-subtle-base shadow-tooltip\">\n <Modal open={open} onOpenChange={setOpen}>\n <ModalTrigger asChild>\n <Button>Open Modal</Button>\n </ModalTrigger>\n <ModalContent aria-describedby={undefined}>\n <ModalTitle className=\"sr-only\">Modal Title</ModalTitle>\n <ModalHeader>\n <Text\n size=\"lg\"\n className=\"flex-1 overflow-ellipsis overflow-hidden whitespace-nowrap\"\n >\n Modal Title\n </Text>\n </ModalHeader>\n <ModalBody>\n <Text size=\"sm\" className=\"text-foreground-neutral-subtle w-full\">\n This modal automatically adapts between dialog (desktop) and drawer (mobile) based\n on screen size. Try resizing your browser window!\n </Text>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"transparent\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Confirm\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </div>\n );\n },\n};\n"],"names":["argosScreenshot","screen","within","userEvent","Button","ButtonLink","CodeBlock","CodeBlockBody","CodeBlockContent","CodeBlockCopyButton","CodeBlockFilename","CodeBlockFiles","CodeBlockFooter","CodeBlockHeader","CodeBlockItem","DatePicker","DynamicItem","Icon","Input","ItemTitle","Label","MovingBorder","Text","useState","cn","illustration2","illustrationBg","Modal","ModalBody","ModalContent","ModalFooter","ModalHeader","ModalTitle","ModalTrigger","OPEN_MODAL_REGEX","IMPORT_JOBS_REGEX","GITHUB_ACTIONS_REGEX","DEFAULT_START_DATE","Date","meta","title","component","tags","parameters","layout","Default","play","ctx","canvasElement","step","canvas","user","setup","triggerButton","getByRole","name","click","findByRole","Promise","resolve","setTimeout","render","open","setOpen","div","className","onOpenChange","asChild","aria-describedby","undefined","size","variant","onClick","ImportForm","date","setDate","placeholder","htmlFor","id","onDateSelect","onClear","diffCode","GithubActions","viewport","defaultViewport","img","src","alt","style","borderRadius","duration","rx","ry","span","color","description","rightElement","href","iconRight","data","language","filename","code","defaultValue","item","value","state","message","OpenedModal"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './popover';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/popover/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './popover.js';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/popover/index.ts"],"sourcesContent":["export * from './popover';\n"],"names":[],"mappings":"AAAA,cAAc,YAAY"}
@@ -0,0 +1,10 @@
1
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
2
+ import type { ComponentProps } from 'react';
3
+ declare function Popover({ ...props }: ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PopoverTrigger({ ...props }: ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverAnchor({ ...props }: ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
6
+ declare function PopoverContent({ className, align, sideOffset, ...props }: ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ declare function PopoverArrow({ className, ...props }: ComponentProps<typeof PopoverPrimitive.Arrow>): import("react/jsx-runtime").JSX.Element;
8
+ declare function PopoverClose({ ...props }: ComponentProps<typeof PopoverPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
9
+ export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, PopoverArrow, PopoverClose };
10
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/components/popover/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAG1C,iBAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAExE;AAED,iBAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAElF;AAED,iBAAS,aAAa,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAEhF;AAMD,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAmBjD;AAED,iBAAS,YAAY,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAOzF;AAED,iBAAS,YAAY,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAE9E;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
3
+ import { cn } from '../../utils/cn.js';
4
+ function Popover({ ...props }) {
5
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Root, {
6
+ ...props
7
+ });
8
+ }
9
+ function PopoverTrigger({ ...props }) {
10
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Trigger, {
11
+ ...props
12
+ });
13
+ }
14
+ function PopoverAnchor({ ...props }) {
15
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Anchor, {
16
+ ...props
17
+ });
18
+ }
19
+ function PopoverPortal({ ...props }) {
20
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Portal, {
21
+ ...props
22
+ });
23
+ }
24
+ function PopoverContent({ className, align = 'center', sideOffset = 4, ...props }) {
25
+ return /*#__PURE__*/ _jsx(PopoverPortal, {
26
+ children: /*#__PURE__*/ _jsx(PopoverPrimitive.Content, {
27
+ align: align,
28
+ sideOffset: sideOffset,
29
+ className: cn('z-50 rounded-10 bg-background-neutral-overlay shadow-tooltip outline-none', 'data-[state=open]:animate-in data-[state=closed]:animate-out', 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2', 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className),
30
+ ...props
31
+ })
32
+ });
33
+ }
34
+ function PopoverArrow({ className, ...props }) {
35
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Arrow, {
36
+ className: cn('fill-background-neutral-overlay', className),
37
+ ...props
38
+ });
39
+ }
40
+ function PopoverClose({ ...props }) {
41
+ return /*#__PURE__*/ _jsx(PopoverPrimitive.Close, {
42
+ ...props
43
+ });
44
+ }
45
+ export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, PopoverArrow, PopoverClose };
46
+
47
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/popover/popover.tsx"],"sourcesContent":["import * as PopoverPrimitive from '@radix-ui/react-popover';\nimport type {ComponentProps} from 'react';\nimport {cn} from 'utils/cn';\n\nfunction Popover({...props}: ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nfunction PopoverTrigger({...props}: ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger {...props} />;\n}\n\nfunction PopoverAnchor({...props}: ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor {...props} />;\n}\n\nfunction PopoverPortal({...props}: ComponentProps<typeof PopoverPrimitive.Portal>) {\n return <PopoverPrimitive.Portal {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPortal>\n <PopoverPrimitive.Content\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 rounded-10 bg-background-neutral-overlay shadow-tooltip outline-none',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n </PopoverPortal>\n );\n}\n\nfunction PopoverArrow({className, ...props}: ComponentProps<typeof PopoverPrimitive.Arrow>) {\n return (\n <PopoverPrimitive.Arrow\n className={cn('fill-background-neutral-overlay', className)}\n {...props}\n />\n );\n}\n\nfunction PopoverClose({...props}: ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close {...props} />;\n}\n\nexport {Popover, PopoverTrigger, PopoverAnchor, PopoverContent, PopoverArrow, PopoverClose};\n"],"names":["PopoverPrimitive","cn","Popover","props","Root","PopoverTrigger","Trigger","PopoverAnchor","Anchor","PopoverPortal","Portal","PopoverContent","className","align","sideOffset","Content","PopoverArrow","Arrow","PopoverClose","Close"],"mappings":";AAAA,YAAYA,sBAAsB,0BAA0B;AAE5D,SAAQC,EAAE,QAAO,WAAW;AAE5B,SAASC,QAAQ,EAAC,GAAGC,OAAoD;IACvE,qBAAO,KAACH,iBAAiBI,IAAI;QAAE,GAAGD,KAAK;;AACzC;AAEA,SAASE,eAAe,EAAC,GAAGF,OAAuD;IACjF,qBAAO,KAACH,iBAAiBM,OAAO;QAAE,GAAGH,KAAK;;AAC5C;AAEA,SAASI,cAAc,EAAC,GAAGJ,OAAsD;IAC/E,qBAAO,KAACH,iBAAiBQ,MAAM;QAAE,GAAGL,KAAK;;AAC3C;AAEA,SAASM,cAAc,EAAC,GAAGN,OAAsD;IAC/E,qBAAO,KAACH,iBAAiBU,MAAM;QAAE,GAAGP,KAAK;;AAC3C;AAEA,SAASQ,eAAe,EACtBC,SAAS,EACTC,QAAQ,QAAQ,EAChBC,aAAa,CAAC,EACd,GAAGX,OAC6C;IAChD,qBACE,KAACM;kBACC,cAAA,KAACT,iBAAiBe,OAAO;YACvBF,OAAOA;YACPC,YAAYA;YACZF,WAAWX,GACT,6EACA,gEACA,8DACA,gEACA,iFACA,iFACAW;YAED,GAAGT,KAAK;;;AAIjB;AAEA,SAASa,aAAa,EAACJ,SAAS,EAAE,GAAGT,OAAqD;IACxF,qBACE,KAACH,iBAAiBiB,KAAK;QACrBL,WAAWX,GAAG,mCAAmCW;QAChD,GAAGT,KAAK;;AAGf;AAEA,SAASe,aAAa,EAAC,GAAGf,OAAqD;IAC7E,qBAAO,KAACH,iBAAiBmB,KAAK;QAAE,GAAGhB,KAAK;;AAC1C;AAEA,SAAQD,OAAO,EAAEG,cAAc,EAAEE,aAAa,EAAEI,cAAc,EAAEK,YAAY,EAAEE,YAAY,GAAE"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { argosScreenshot } from '@argos-ci/storybook/vitest';
2
3
  import { Code, Header } from '../../components/typography/index.js';
3
4
  import { Textarea } from './textarea.js';
4
5
  const meta = {
@@ -32,7 +33,12 @@ const meta = {
32
33
  }
33
34
  };
34
35
  export default meta;
35
- export const Default = {};
36
+ export const Default = {
37
+ play: async (ctx)=>{
38
+ await new Promise((resolve)=>setTimeout(resolve, 100));
39
+ await argosScreenshot(ctx, 'Textarea Default');
40
+ }
41
+ };
36
42
  const variants = [
37
43
  'base',
38
44
  'component'
@@ -306,7 +312,7 @@ export const DesignMock = {
306
312
  ]
307
313
  }),
308
314
  /*#__PURE__*/ _jsx("div", {
309
- className: "w-[280px]",
315
+ className: "w-280",
310
316
  children: /*#__PURE__*/ _jsx(Textarea, {
311
317
  placeholder: "Placeholder",
312
318
  variant: variant.key,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/textarea/textarea.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {Textarea} from './textarea';\n\nconst meta = {\n title: 'Components/Textarea',\n component: Textarea,\n tags: ['autodocs'],\n argTypes: {\n placeholder: {control: 'text'},\n disabled: {control: 'boolean'},\n 'aria-invalid': {control: 'boolean'},\n rows: {control: 'number'},\n cols: {control: 'number'},\n },\n args: {\n placeholder: 'Type something…',\n disabled: false,\n 'aria-invalid': false,\n rows: 4,\n },\n} satisfies Meta<typeof Textarea>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {};\n\nconst variants = ['base', 'component'] as const;\nconst sizes = ['base', 'small'] as const;\n\nexport const States: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n {variants.map((variant) =>\n sizes.map((size) => (\n <div key={variant + size} className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">\n {variant} {size}\n </Header>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Default\n </Code>\n\n <Textarea {...args} variant={variant} size={size} />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Hover\n </Code>\n\n <Textarea {...args} className=\"hover\" variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Active\n </Code>\n\n <Textarea\n {...args}\n className=\"active\"\n defaultValue=\"The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\"\n variant={variant}\n size={size}\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Focus\n </Code>\n\n <Textarea {...args} className=\"focus\" variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Disabled\n </Code>\n\n <Textarea {...args} disabled variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Invalid\n </Code>\n\n <Textarea {...args} aria-invalid variant={variant} size={size} />\n </div>\n </div>\n )),\n )}\n </div>\n ),\n};\n\nStates.parameters = {\n pseudo: {\n hover: '.hover',\n active: '.active',\n focusVisible: '.focus',\n },\n};\n\nexport const Sizes: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 2\n </Code>\n <Textarea {...args} rows={2} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 4 (default)\n </Code>\n <Textarea {...args} rows={4} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 6\n </Code>\n <Textarea {...args} rows={6} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 10\n </Code>\n <Textarea {...args} rows={10} />\n </div>\n </div>\n ),\n};\n\nexport const DesignMock: Story = {\n render: () => {\n const variants = [\n {key: 'base', label: 'Primary'},\n {key: 'component', label: 'Secondary'},\n ] as const;\n const states = [\n {name: 'Default', props: {}},\n {name: 'Hover', props: {className: 'hover'}},\n {name: 'Focus', props: {className: 'focus'}},\n {name: 'Filled', props: {defaultValue: 'Placeholder'}},\n {name: 'Filled Hover', props: {defaultValue: 'Placeholder', className: 'hover'}},\n {name: 'Disabled', props: {disabled: true}},\n {name: 'Error', props: {'aria-invalid': true}},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-subtle\">\n TEXT AREA\n </Header>\n <div className=\"flex flex-row gap-32\">\n {variants.map((variant) => (\n <div key={variant.key} className=\"flex flex-col gap-32\">\n {states.map((state) => (\n <div key={state.name} className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Size=Base (32), State={state.name}, Color={variant.label}\n </Code>\n <div className=\"w-[280px]\">\n <Textarea\n placeholder=\"Placeholder\"\n variant={variant.key}\n size=\"base\"\n rows={2}\n {...state.props}\n />\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n },\n};\n\nDesignMock.parameters = {\n pseudo: {\n hover: '.hover',\n focusVisible: '.focus',\n },\n};\n"],"names":["Code","Header","Textarea","meta","title","component","tags","argTypes","placeholder","control","disabled","rows","cols","args","Default","variants","sizes","States","render","div","className","map","variant","size","defaultValue","aria-invalid","parameters","pseudo","hover","active","focusVisible","Sizes","DesignMock","key","label","states","name","props","state"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/textarea/textarea.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Code, Header} from 'components/typography';\nimport {Textarea} from './textarea';\n\nconst meta = {\n title: 'Components/Textarea',\n component: Textarea,\n tags: ['autodocs'],\n argTypes: {\n placeholder: {control: 'text'},\n disabled: {control: 'boolean'},\n 'aria-invalid': {control: 'boolean'},\n rows: {control: 'number'},\n cols: {control: 'number'},\n },\n args: {\n placeholder: 'Type something…',\n disabled: false,\n 'aria-invalid': false,\n rows: 4,\n },\n} satisfies Meta<typeof Textarea>;\n\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n play: async (ctx) => {\n await new Promise((resolve) => setTimeout(resolve, 100));\n await argosScreenshot(ctx, 'Textarea Default');\n },\n};\n\nconst variants = ['base', 'component'] as const;\nconst sizes = ['base', 'small'] as const;\n\nexport const States: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n {variants.map((variant) =>\n sizes.map((size) => (\n <div key={variant + size} className=\"flex flex-col gap-16\">\n <Header variant=\"h3\">\n {variant} {size}\n </Header>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Default\n </Code>\n\n <Textarea {...args} variant={variant} size={size} />\n </div>\n\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Hover\n </Code>\n\n <Textarea {...args} className=\"hover\" variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Active\n </Code>\n\n <Textarea\n {...args}\n className=\"active\"\n defaultValue=\"The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\"\n variant={variant}\n size={size}\n />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Focus\n </Code>\n\n <Textarea {...args} className=\"focus\" variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Disabled\n </Code>\n\n <Textarea {...args} disabled variant={variant} size={size} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Invalid\n </Code>\n\n <Textarea {...args} aria-invalid variant={variant} size={size} />\n </div>\n </div>\n )),\n )}\n </div>\n ),\n};\n\nStates.parameters = {\n pseudo: {\n hover: '.hover',\n active: '.active',\n focusVisible: '.focus',\n },\n};\n\nexport const Sizes: Story = {\n render: (args) => (\n <div className=\"flex flex-col gap-32\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 2\n </Code>\n <Textarea {...args} rows={2} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 4 (default)\n </Code>\n <Textarea {...args} rows={4} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 6\n </Code>\n <Textarea {...args} rows={6} />\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Rows: 10\n </Code>\n <Textarea {...args} rows={10} />\n </div>\n </div>\n ),\n};\n\nexport const DesignMock: Story = {\n render: () => {\n const variants = [\n {key: 'base', label: 'Primary'},\n {key: 'component', label: 'Secondary'},\n ] as const;\n const states = [\n {name: 'Default', props: {}},\n {name: 'Hover', props: {className: 'hover'}},\n {name: 'Focus', props: {className: 'focus'}},\n {name: 'Filled', props: {defaultValue: 'Placeholder'}},\n {name: 'Filled Hover', props: {defaultValue: 'Placeholder', className: 'hover'}},\n {name: 'Disabled', props: {disabled: true}},\n {name: 'Error', props: {'aria-invalid': true}},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-32 pb-64 pt-32 px-32\">\n <Header variant=\"h3\" className=\"text-foreground-neutral-subtle\">\n TEXT AREA\n </Header>\n <div className=\"flex flex-row gap-32\">\n {variants.map((variant) => (\n <div key={variant.key} className=\"flex flex-col gap-32\">\n {states.map((state) => (\n <div key={state.name} className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-subtle\">\n Size=Base (32), State={state.name}, Color={variant.label}\n </Code>\n <div className=\"w-280\">\n <Textarea\n placeholder=\"Placeholder\"\n variant={variant.key}\n size=\"base\"\n rows={2}\n {...state.props}\n />\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n },\n};\n\nDesignMock.parameters = {\n pseudo: {\n hover: '.hover',\n focusVisible: '.focus',\n },\n};\n"],"names":["argosScreenshot","Code","Header","Textarea","meta","title","component","tags","argTypes","placeholder","control","disabled","rows","cols","args","Default","play","ctx","Promise","resolve","setTimeout","variants","sizes","States","render","div","className","map","variant","size","defaultValue","aria-invalid","parameters","pseudo","hover","active","focusVisible","Sizes","DesignMock","key","label","states","name","props","state"],"mappings":";AAAA,SAAQA,eAAe,QAAO,6BAA6B;AAE3D,SAAQC,IAAI,EAAEC,MAAM,QAAO,wBAAwB;AACnD,SAAQC,QAAQ,QAAO,aAAa;AAEpC,MAAMC,OAAO;IACXC,OAAO;IACPC,WAAWH;IACXI,MAAM;QAAC;KAAW;IAClBC,UAAU;QACRC,aAAa;YAACC,SAAS;QAAM;QAC7BC,UAAU;YAACD,SAAS;QAAS;QAC7B,gBAAgB;YAACA,SAAS;QAAS;QACnCE,MAAM;YAACF,SAAS;QAAQ;QACxBG,MAAM;YAACH,SAAS;QAAQ;IAC1B;IACAI,MAAM;QACJL,aAAa;QACbE,UAAU;QACV,gBAAgB;QAChBC,MAAM;IACR;AACF;AAEA,eAAeR,KAAK;AAIpB,OAAO,MAAMW,UAAiB;IAC5BC,MAAM,OAAOC;QACX,MAAM,IAAIC,QAAQ,CAACC,UAAYC,WAAWD,SAAS;QACnD,MAAMnB,gBAAgBiB,KAAK;IAC7B;AACF,EAAE;AAEF,MAAMI,WAAW;IAAC;IAAQ;CAAY;AACtC,MAAMC,QAAQ;IAAC;IAAQ;CAAQ;AAE/B,OAAO,MAAMC,SAAgB;IAC3BC,QAAQ,CAACV,qBACP,KAACW;YAAIC,WAAU;sBACZL,SAASM,GAAG,CAAC,CAACC,UACbN,MAAMK,GAAG,CAAC,CAACE,qBACT,MAACJ;wBAAyBC,WAAU;;0CAClC,MAACxB;gCAAO0B,SAAQ;;oCACbA;oCAAQ;oCAAEC;;;0CAEb,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCAAU,GAAGW,IAAI;wCAAEc,SAASA;wCAASC,MAAMA;;;;0CAG9C,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCAAU,GAAGW,IAAI;wCAAEY,WAAU;wCAAQE,SAASA;wCAASC,MAAMA;;;;0CAEhE,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCACE,GAAGW,IAAI;wCACRY,WAAU;wCACVI,cAAa;wCACbF,SAASA;wCACTC,MAAMA;;;;0CAGV,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCAAU,GAAGW,IAAI;wCAAEY,WAAU;wCAAQE,SAASA;wCAASC,MAAMA;;;;0CAEhE,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCAAU,GAAGW,IAAI;wCAAEH,QAAQ;wCAACiB,SAASA;wCAASC,MAAMA;;;;0CAEvD,MAACJ;gCAAIC,WAAU;;kDACb,KAACzB;wCAAK2B,SAAQ;wCAAQF,WAAU;kDAAiC;;kDAIjE,KAACvB;wCAAU,GAAGW,IAAI;wCAAEiB,cAAY;wCAACH,SAASA;wCAASC,MAAMA;;;;;uBAnDnDD,UAAUC;;AA0D9B,EAAE;AAEFN,OAAOS,UAAU,GAAG;IAClBC,QAAQ;QACNC,OAAO;QACPC,QAAQ;QACRC,cAAc;IAChB;AACF;AAEA,OAAO,MAAMC,QAAe;IAC1Bb,QAAQ,CAACV,qBACP,MAACW;YAAIC,WAAU;;8BACb,MAACD;oBAAIC,WAAU;;sCACb,KAACzB;4BAAK2B,SAAQ;4BAAQF,WAAU;sCAAiC;;sCAGjE,KAACvB;4BAAU,GAAGW,IAAI;4BAAEF,MAAM;;;;8BAE5B,MAACa;oBAAIC,WAAU;;sCACb,KAACzB;4BAAK2B,SAAQ;4BAAQF,WAAU;sCAAiC;;sCAGjE,KAACvB;4BAAU,GAAGW,IAAI;4BAAEF,MAAM;;;;8BAE5B,MAACa;oBAAIC,WAAU;;sCACb,KAACzB;4BAAK2B,SAAQ;4BAAQF,WAAU;sCAAiC;;sCAGjE,KAACvB;4BAAU,GAAGW,IAAI;4BAAEF,MAAM;;;;8BAE5B,MAACa;oBAAIC,WAAU;;sCACb,KAACzB;4BAAK2B,SAAQ;4BAAQF,WAAU;sCAAiC;;sCAGjE,KAACvB;4BAAU,GAAGW,IAAI;4BAAEF,MAAM;;;;;;AAIlC,EAAE;AAEF,OAAO,MAAM0B,aAAoB;IAC/Bd,QAAQ;QACN,MAAMH,WAAW;YACf;gBAACkB,KAAK;gBAAQC,OAAO;YAAS;YAC9B;gBAACD,KAAK;gBAAaC,OAAO;YAAW;SACtC;QACD,MAAMC,SAAS;YACb;gBAACC,MAAM;gBAAWC,OAAO,CAAC;YAAC;YAC3B;gBAACD,MAAM;gBAASC,OAAO;oBAACjB,WAAW;gBAAO;YAAC;YAC3C;gBAACgB,MAAM;gBAASC,OAAO;oBAACjB,WAAW;gBAAO;YAAC;YAC3C;gBAACgB,MAAM;gBAAUC,OAAO;oBAACb,cAAc;gBAAa;YAAC;YACrD;gBAACY,MAAM;gBAAgBC,OAAO;oBAACb,cAAc;oBAAeJ,WAAW;gBAAO;YAAC;YAC/E;gBAACgB,MAAM;gBAAYC,OAAO;oBAAChC,UAAU;gBAAI;YAAC;YAC1C;gBAAC+B,MAAM;gBAASC,OAAO;oBAAC,gBAAgB;gBAAI;YAAC;SAC9C;QAED,qBACE,MAAClB;YAAIC,WAAU;;8BACb,KAACxB;oBAAO0B,SAAQ;oBAAKF,WAAU;8BAAiC;;8BAGhE,KAACD;oBAAIC,WAAU;8BACZL,SAASM,GAAG,CAAC,CAACC,wBACb,KAACH;4BAAsBC,WAAU;sCAC9Be,OAAOd,GAAG,CAAC,CAACiB,sBACX,MAACnB;oCAAqBC,WAAU;;sDAC9B,MAACzB;4CAAK2B,SAAQ;4CAAQF,WAAU;;gDAAiC;gDACxCkB,MAAMF,IAAI;gDAAC;gDAASd,QAAQY,KAAK;;;sDAE1D,KAACf;4CAAIC,WAAU;sDACb,cAAA,KAACvB;gDACCM,aAAY;gDACZmB,SAASA,QAAQW,GAAG;gDACpBV,MAAK;gDACLjB,MAAM;gDACL,GAAGgC,MAAMD,KAAK;;;;mCAVXC,MAAMF,IAAI;2BAFdd,QAAQW,GAAG;;;;IAsB/B;AACF,EAAE;AAEFD,WAAWN,UAAU,GAAG;IACtBC,QAAQ;QACNC,OAAO;QACPE,cAAc;IAChB;AACF"}