@cryptlex/web-components 6.7.9 → 6.7.11
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.
- package/dist/components/alert.d.ts +2 -2
- package/dist/components/alert.js +2 -2
- package/dist/components/alert.js.map +1 -1
- package/dist/components/autocomplete.js +2 -2
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/avatar.js +2 -2
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.d.ts +2 -2
- package/dist/components/badge.js +2 -2
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumbs.d.ts +5 -5
- package/dist/components/breadcrumbs.js +2 -2
- package/dist/components/breadcrumbs.js.map +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/button.js +2 -2
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.d.ts +7 -7
- package/dist/components/calendar.js +2 -2
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.d.ts +6 -6
- package/dist/components/card.js +2 -2
- package/dist/components/card.js.map +1 -1
- package/dist/components/charts.d.ts +8 -8
- package/dist/components/charts.js +2 -2
- package/dist/components/charts.js.map +1 -1
- package/dist/components/checkbox.d.ts +2 -2
- package/dist/components/checkbox.js +2 -2
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/code-block.d.ts +1 -1
- package/dist/components/code-block.js +2 -2
- package/dist/components/code-block.js.map +1 -1
- package/dist/components/copy-button.d.ts +1 -1
- package/dist/components/copy-button.js +2 -2
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/data-table-filter.d.ts +1 -1
- package/dist/components/data-table-filter.js +1 -2
- package/dist/components/data-table.d.ts +11 -86
- package/dist/components/data-table.js +1 -2
- package/dist/components/date-picker.d.ts +3 -3
- package/dist/components/date-picker.js +2 -2
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/datefield.d.ts +4 -4
- package/dist/components/datefield.js +2 -2
- package/dist/components/datefield.js.map +1 -1
- package/dist/components/dialog.d.ts +8 -8
- package/dist/components/dialog.js +2 -2
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/disclosure.d.ts +4 -4
- package/dist/components/disclosure.js +2 -2
- package/dist/components/disclosure.js.map +1 -1
- package/dist/components/divider.d.ts +2 -2
- package/dist/components/divider.js +2 -2
- package/dist/components/divider.js.map +1 -1
- package/dist/components/duration-field.d.ts +2 -2
- package/dist/components/duration-field.js +2 -2
- package/dist/components/duration-field.js.map +1 -1
- package/dist/components/file-trigger.d.ts +1 -1
- package/dist/components/file-trigger.js +2 -2
- package/dist/components/file-trigger.js.map +1 -1
- package/dist/components/form.d.ts +11 -11
- package/dist/components/form.js +2 -2
- package/dist/components/form.js.map +1 -1
- package/dist/components/icons.js +1 -2
- package/dist/components/id-search.d.ts +5 -5
- package/dist/components/id-search.js +2 -2
- package/dist/components/id-search.js.map +1 -1
- package/dist/components/kbd.d.ts +1 -1
- package/dist/components/kbd.js +2 -2
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/list-box.d.ts +3 -3
- package/dist/components/list-box.js +2 -2
- package/dist/components/list-box.js.map +1 -1
- package/dist/components/loader.d.ts +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/loader.js.map +1 -1
- package/dist/components/menu.d.ts +7 -7
- package/dist/components/menu.js +2 -2
- package/dist/components/menu.js.map +1 -1
- package/dist/components/multi-select.d.ts +2 -2
- package/dist/components/multi-select.js +2 -2
- package/dist/components/multi-select.js.map +1 -1
- package/dist/components/numberfield.d.ts +5 -5
- package/dist/components/numberfield.js +2 -2
- package/dist/components/numberfield.js.map +1 -1
- package/dist/components/object-table.d.ts +1 -1
- package/dist/components/object-table.js +2 -2
- package/dist/components/object-table.js.map +1 -1
- package/dist/components/offline-request-file-input.d.ts +2 -2
- package/dist/components/offline-request-file-input.js +2 -2
- package/dist/components/offline-request-file-input.js.map +1 -1
- package/dist/components/otpfield.d.ts +1 -1
- package/dist/components/otpfield.js +2 -2
- package/dist/components/otpfield.js.map +1 -1
- package/dist/components/popover.d.ts +2 -2
- package/dist/components/popover.js +2 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress-bar.d.ts +1 -1
- package/dist/components/progress-bar.js +2 -2
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/searchfield.d.ts +1 -1
- package/dist/components/searchfield.js +2 -2
- package/dist/components/searchfield.js.map +1 -1
- package/dist/components/select-options.js +2 -2
- package/dist/components/select-options.js.map +1 -1
- package/dist/components/select.d.ts +5 -5
- package/dist/components/select.js +2 -2
- package/dist/components/select.js.map +1 -1
- package/dist/components/sidebar.d.ts +20 -20
- package/dist/components/sidebar.js +2 -2
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.d.ts +1 -1
- package/dist/components/skeleton.js +2 -2
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/steps.d.ts +1 -1
- package/dist/components/steps.js +2 -2
- package/dist/components/steps.js.map +1 -1
- package/dist/components/table-of-contents.d.ts +1 -1
- package/dist/components/table-of-contents.js +2 -2
- package/dist/components/table-of-contents.js.map +1 -1
- package/dist/components/table.d.ts +8 -8
- package/dist/components/table.js +2 -2
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +4 -4
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-group.d.ts +2 -2
- package/dist/components/tag-group.js +2 -2
- package/dist/components/tag-group.js.map +1 -1
- package/dist/components/textfield.d.ts +2 -2
- package/dist/components/textfield.js +2 -2
- package/dist/components/textfield.js.map +1 -1
- package/dist/components/timeline.d.ts +6 -6
- package/dist/components/timeline.js +2 -2
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toast.js +2 -2
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.d.ts +2 -2
- package/dist/components/tooltip.js +2 -2
- package/dist/components/tooltip.js.map +1 -1
- package/dist/data-table-filter.js +2 -0
- package/dist/data-table-filter.js.map +1 -0
- package/dist/icons.js +2 -0
- package/dist/icons.js.map +1 -0
- package/dist/stories/atoms/color.stories.d.ts +11 -0
- package/dist/stories/atoms/icons.stories.d.ts +11 -0
- package/dist/stories/atoms/type.stories.d.ts +13 -0
- package/dist/stories/components/alert.stories.d.ts +11 -0
- package/dist/stories/components/avatar.stories.d.ts +6 -0
- package/dist/stories/components/badge.stories.d.ts +6 -0
- package/dist/stories/components/breadcrumbs.stories.d.ts +5 -0
- package/dist/stories/components/button.stories.d.ts +6 -0
- package/dist/stories/components/calendar.stories.d.ts +10 -0
- package/dist/stories/components/card.stories.d.ts +9 -0
- package/dist/stories/components/code-block.stories.d.ts +12 -0
- package/dist/stories/components/copy-button.stories.d.ts +6 -0
- package/dist/stories/components/date-range-picker.stories.d.ts +23 -0
- package/dist/stories/components/datepicker.stories.d.ts +23 -0
- package/dist/stories/components/dialog.stories.d.ts +5 -0
- package/dist/stories/components/divider.stories.d.ts +13 -0
- package/dist/stories/components/file-trigger.stories.d.ts +10 -0
- package/dist/stories/components/kbd.stories.d.ts +49 -0
- package/dist/stories/components/loader.stories.d.ts +12 -0
- package/dist/stories/components/offline-request-file-upload.stories.d.ts +10 -0
- package/dist/stories/components/progress-bar.stories.d.ts +15 -0
- package/dist/stories/components/sheet.stories.d.ts +15 -0
- package/dist/stories/components/skeleton.stories.d.ts +10 -0
- package/dist/stories/components/tabs.stories.d.ts +12 -0
- package/dist/stories/components/tag-group.stories.d.ts +8 -0
- package/dist/stories/components/timeline.stories.d.ts +6 -0
- package/dist/stories/components/timepicker.stories.d.ts +23 -0
- package/dist/stories/components/toast.stories.d.ts +12 -0
- package/dist/stories/components/tooltip.stories.d.ts +9 -0
- package/dist/stories/examples/autocomplete.stories.d.ts +11 -0
- package/dist/stories/examples/charts.stories.d.ts +11 -0
- package/dist/stories/examples/data-table.stories.d.ts +9 -0
- package/dist/stories/examples/key-value-card.stories.d.ts +42 -0
- package/dist/stories/examples/sidebar.stories.d.ts +32 -0
- package/dist/stories/examples/table-of-contents.stories.d.ts +6 -0
- package/dist/stories/inputs/form.stories.d.ts +6 -0
- package/dist/stories/inputs/id-search.stories.d.ts +8 -0
- package/dist/stories/inputs/otp-field.stories.d.ts +6 -0
- package/dist/stories/inputs/textfield.stories.d.ts +8 -0
- package/dist/stories/story-commons.d.ts +3 -0
- package/dist/stories/utilities/resource-formatter.stories.d.ts +7 -0
- package/dist/utilities/auth.js +2 -2
- package/dist/utilities/auth.js.map +1 -1
- package/dist/utilities/countries.d.ts +1 -1
- package/dist/utilities/countries.js +2 -2
- package/dist/utilities/countries.js.map +1 -1
- package/dist/utilities/ctx-client.d.ts +1 -1
- package/dist/utilities/ctx-client.js +2 -2
- package/dist/utilities/ctx-client.js.map +1 -1
- package/dist/utilities/date.js +2 -2
- package/dist/utilities/date.js.map +1 -1
- package/dist/utilities/duration.js +2 -2
- package/dist/utilities/duration.js.map +1 -1
- package/dist/utilities/empty-option.js +2 -2
- package/dist/utilities/empty-option.js.map +1 -1
- package/dist/utilities/errors.js +2 -2
- package/dist/utilities/errors.js.map +1 -1
- package/dist/utilities/form-context.js +2 -2
- package/dist/utilities/form-context.js.map +1 -1
- package/dist/utilities/form-hook.js +2 -2
- package/dist/utilities/form-hook.js.map +1 -1
- package/dist/utilities/form.js +2 -2
- package/dist/utilities/form.js.map +1 -1
- package/dist/utilities/highlight-code.js +2 -2
- package/dist/utilities/highlight-code.js.map +1 -1
- package/dist/utilities/normalize-arrays.js +2 -2
- package/dist/utilities/normalize-arrays.js.map +1 -1
- package/dist/utilities/numbers.js +2 -2
- package/dist/utilities/numbers.js.map +1 -1
- package/dist/utilities/resources.d.ts +1 -1
- package/dist/utilities/resources.js +2 -2
- package/dist/utilities/resources.js.map +1 -1
- package/dist/utilities/shiki.js +2 -2
- package/dist/utilities/shiki.js.map +1 -1
- package/dist/utilities/string.js +2 -2
- package/dist/utilities/string.js.map +1 -1
- package/dist/utilities/theme.js +2 -2
- package/dist/utilities/theme.js.map +1 -1
- package/dist/utilities/use-code-highlight.js +2 -2
- package/dist/utilities/use-code-highlight.js.map +1 -1
- package/dist/utilities/use-mobile.js +2 -2
- package/dist/utilities/use-mobile.js.map +1 -1
- package/dist/utilities/validators.js +2 -2
- package/dist/utilities/validators.js.map +1 -1
- package/package.json +41 -41
- package/dist/components/data-table-filter.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/icons.js.map +0 -1
package/dist/components/steps.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
2
|
-
//# sourceMappingURL=steps.js.map
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";function t({...t}){return e(`div`,{className:`steps`,...t})}export{t as Steps};
|
|
2
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sources":["../../lib/components/steps.tsx"],"sourcesContent":["export function Steps({ ...props }: React.ComponentProps<'div'>) {\n return <div className=\"steps\" {...props} />;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"steps.js","names":[],"sources":["../../lib/components/steps.tsx"],"sourcesContent":["export function Steps({ ...props }: React.ComponentProps<'div'>) {\n return <div className=\"steps\" {...props} />;\n}\n"],"mappings":"wCAAA,SAAgB,EAAM,CAAE,GAAG,GAAsC,CAC7D,OAAO,EAAC,MAAD,CAAK,UAAU,QAAQ,GAAI,CAAQ,CAAA,CAC9C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=table-of-contents.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{useEffect as t,useMemo as n,useRef as r,useState as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e){let[n,r]=i(``);return t(()=>{let t=new IntersectionObserver(e=>{let t=e.filter(e=>e.isIntersecting);if(t.length===0)return;let n=t.map(e=>e.target.id)[0];r(n)});for(let n of e??[]){let e=document.getElementById(n);e&&t.observe(e)}return()=>{for(let n of e??[]){let e=document.getElementById(n);e&&t.unobserve(e)}}},[e]),n}function c({toc:i,className:c}){let l=s(n(()=>i.map(e=>e.url.replace(`#`,``)),[i])),u=r({}),d=r(null);return t(()=>{if(l){let e=u.current[`#${l}`],t=d.current;if(e&&t){let n=e.offsetTop,r=t.clientHeight;t.scrollTo({top:n-r/2,behavior:`smooth`})}}},[l]),i.length?o(`nav`,{ref:d,className:e(c),children:[a(`p`,{className:`text-muted opacity-70 mb-1 body-sm select-none`,children:`On This Page`}),a(`div`,{className:`flex flex-col gap-1`,children:i.map(e=>{let t=e.url.replace(/^#/,``);return a(`a`,{href:e.url,ref:t=>{u.current[e.url]=t},className:`text-muted-foreground hover:text-text-primary data-[active=true]:text-primary body-sm no-underline transition-colors data-[depth=3]:pl-4 data-[depth=4]:pl-6`,"data-active":l===t,"data-depth":e.depth,children:e.title},e.url)})})]}):null}export{c as TableOfContents};
|
|
2
|
+
//# sourceMappingURL=table-of-contents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-of-contents.js","sources":["../../lib/components/table-of-contents.tsx"],"sourcesContent":["'use client';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames } from '../utilities/theme';\n\nfunction useActiveItem(itemIds: string[]) {\n const [activeId, setActiveId] = useState<string>('');\n\n useEffect(() => {\n const observer = new IntersectionObserver(entries => {\n const intersectingEntries = entries.filter(entry => entry.isIntersecting);\n\n // Last-active entry remains highlighted\n if (intersectingEntries.length === 0) {\n return;\n }\n\n const topIntersectingId = intersectingEntries.map(e => e.target.id)[0];\n setActiveId(topIntersectingId);\n });\n\n for (const id of itemIds ?? []) {\n const element = document.getElementById(id);\n if (element) {\n observer.observe(element);\n }\n }\n\n return () => {\n for (const id of itemIds ?? []) {\n const element = document.getElementById(id);\n if (element) {\n observer.unobserve(element);\n }\n }\n };\n }, [itemIds]);\n\n return activeId;\n}\n\nexport type TableOfContentsHeading = {\n title?: React.ReactNode;\n url: string;\n depth: number;\n};\n\nexport function TableOfContents({ toc, className }: { toc: TableOfContentsHeading[]; className?: string }) {\n const itemIds = useMemo(() => toc.map(item => item.url.replace('#', '')), [toc]);\n const activeId = useActiveItem(itemIds);\n const linkRefs = useRef<Record<string, HTMLAnchorElement | null>>({});\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n // Scroll to first active item\n useEffect(() => {\n if (activeId) {\n const activeEl = linkRefs.current[`#${activeId}`];\n const containerEl = containerRef.current;\n\n if (activeEl && containerEl) {\n const linkTop = activeEl.offsetTop;\n const containerHeight = containerEl.clientHeight;\n containerEl.scrollTo({\n top: linkTop - containerHeight / 2,\n behavior: 'smooth',\n });\n }\n }\n }, [activeId]);\n\n if (!toc.length) {\n return null;\n }\n\n return (\n <nav ref={containerRef} className={classNames(className)}>\n <p className=\"text-muted opacity-70 mb-1 body-sm select-none\">On This Page</p>\n <div className=\"flex flex-col gap-1\">\n {toc.map(item => {\n const id = item.url.replace(/^#/, '');\n\n return (\n // It is okay to use plain <a hrefs> here because the links all point to IDs on the same page and does not impact any routers.\n <a\n key={item.url}\n href={item.url}\n ref={el => {\n linkRefs.current[item.url] = el;\n }}\n className=\"text-muted-foreground hover:text-text-primary data-[active=true]:text-primary body-sm no-underline transition-colors data-[depth=3]:pl-4 data-[depth=4]:pl-6\"\n data-active={activeId === id}\n data-depth={item.depth}\n >\n {item.title}\n </a>\n );\n })}\n </div>\n </nav>\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"table-of-contents.js","names":[],"sources":["../../lib/components/table-of-contents.tsx"],"sourcesContent":["'use client';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames } from '../utilities/theme';\n\nfunction useActiveItem(itemIds: string[]) {\n const [activeId, setActiveId] = useState<string>('');\n\n useEffect(() => {\n const observer = new IntersectionObserver(entries => {\n const intersectingEntries = entries.filter(entry => entry.isIntersecting);\n\n // Last-active entry remains highlighted\n if (intersectingEntries.length === 0) {\n return;\n }\n\n const topIntersectingId = intersectingEntries.map(e => e.target.id)[0];\n setActiveId(topIntersectingId);\n });\n\n for (const id of itemIds ?? []) {\n const element = document.getElementById(id);\n if (element) {\n observer.observe(element);\n }\n }\n\n return () => {\n for (const id of itemIds ?? []) {\n const element = document.getElementById(id);\n if (element) {\n observer.unobserve(element);\n }\n }\n };\n }, [itemIds]);\n\n return activeId;\n}\n\nexport type TableOfContentsHeading = {\n title?: React.ReactNode;\n url: string;\n depth: number;\n};\n\nexport function TableOfContents({ toc, className }: { toc: TableOfContentsHeading[]; className?: string }) {\n const itemIds = useMemo(() => toc.map(item => item.url.replace('#', '')), [toc]);\n const activeId = useActiveItem(itemIds);\n const linkRefs = useRef<Record<string, HTMLAnchorElement | null>>({});\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n // Scroll to first active item\n useEffect(() => {\n if (activeId) {\n const activeEl = linkRefs.current[`#${activeId}`];\n const containerEl = containerRef.current;\n\n if (activeEl && containerEl) {\n const linkTop = activeEl.offsetTop;\n const containerHeight = containerEl.clientHeight;\n containerEl.scrollTo({\n top: linkTop - containerHeight / 2,\n behavior: 'smooth',\n });\n }\n }\n }, [activeId]);\n\n if (!toc.length) {\n return null;\n }\n\n return (\n <nav ref={containerRef} className={classNames(className)}>\n <p className=\"text-muted opacity-70 mb-1 body-sm select-none\">On This Page</p>\n <div className=\"flex flex-col gap-1\">\n {toc.map(item => {\n const id = item.url.replace(/^#/, '');\n\n return (\n // It is okay to use plain <a hrefs> here because the links all point to IDs on the same page and does not impact any routers.\n <a\n key={item.url}\n href={item.url}\n ref={el => {\n linkRefs.current[item.url] = el;\n }}\n className=\"text-muted-foreground hover:text-text-primary data-[active=true]:text-primary body-sm no-underline transition-colors data-[depth=3]:pl-4 data-[depth=4]:pl-6\"\n data-active={activeId === id}\n data-depth={item.depth}\n >\n {item.title}\n </a>\n );\n })}\n </div>\n </nav>\n );\n}\n"],"mappings":"2LAIA,SAAS,EAAc,EAAmB,CACtC,GAAM,CAAC,EAAU,GAAe,EAAiB,EAAE,EAgCnD,OA9BA,MAAgB,CACZ,IAAM,EAAW,IAAI,qBAAqB,GAAW,CACjD,IAAM,EAAsB,EAAQ,OAAO,GAAS,EAAM,cAAc,EAGxE,GAAI,EAAoB,SAAW,EAC/B,OAGJ,IAAM,EAAoB,EAAoB,IAAI,GAAK,EAAE,OAAO,EAAE,CAAC,CAAC,GACpE,EAAY,CAAiB,CACjC,CAAC,EAED,IAAK,IAAM,KAAM,GAAW,CAAC,EAAG,CAC5B,IAAM,EAAU,SAAS,eAAe,CAAE,EACtC,GACA,EAAS,QAAQ,CAAO,CAEhC,CAEA,UAAa,CACT,IAAK,IAAM,KAAM,GAAW,CAAC,EAAG,CAC5B,IAAM,EAAU,SAAS,eAAe,CAAE,EACtC,GACA,EAAS,UAAU,CAAO,CAElC,CACJ,CACJ,EAAG,CAAC,CAAO,CAAC,EAEL,CACX,CAQA,SAAgB,EAAgB,CAAE,MAAK,aAAoE,CAEvG,IAAM,EAAW,EADD,MAAc,EAAI,IAAI,GAAQ,EAAK,IAAI,QAAQ,IAAK,EAAE,CAAC,EAAG,CAAC,CAAG,CAC/C,CAAO,EAChC,EAAW,EAAiD,CAAC,CAAC,EAC9D,EAAe,EAA8B,IAAI,EAuBvD,OApBA,MAAgB,CACZ,GAAI,EAAU,CACV,IAAM,EAAW,EAAS,QAAQ,IAAI,KAChC,EAAc,EAAa,QAEjC,GAAI,GAAY,EAAa,CACzB,IAAM,EAAU,EAAS,UACnB,EAAkB,EAAY,aACpC,EAAY,SAAS,CACjB,IAAK,EAAU,EAAkB,EACjC,SAAU,QACd,CAAC,CACL,CACJ,CACJ,EAAG,CAAC,CAAQ,CAAC,EAER,EAAI,OAKL,EAAC,MAAD,CAAK,IAAK,EAAc,UAAW,EAAW,CAAS,EAAvD,SAAA,CACI,EAAC,IAAD,CAAG,UAAU,iDAAiD,SAAA,cAAe,CAAA,EAC7E,EAAC,MAAD,CAAK,UAAU,sBACV,SAAA,EAAI,IAAI,GAAQ,CACb,IAAM,EAAK,EAAK,IAAI,QAAQ,KAAM,EAAE,EAEpC,OAEI,EAAC,IAAD,CAEI,KAAM,EAAK,IACX,IAAK,GAAM,CACP,EAAS,QAAQ,EAAK,KAAO,CACjC,EACA,UAAU,+JACV,cAAa,IAAa,EAC1B,aAAY,EAAK,MAEhB,SAAA,EAAK,KACP,EAVM,EAAK,GAUX,CAEX,CAAC,CACA,CAAA,CACJ,IA3BE,IA6Bf"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare function Table({ className, ...props }: React.ComponentProps<'table'>): import("react
|
|
2
|
-
export declare function TableHeader({ className, ...props }: React.ComponentProps<'thead'>): import("react
|
|
3
|
-
export declare function TableBody({ className, ...props }: React.ComponentProps<'tbody'>): import("react
|
|
4
|
-
export declare function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>): import("react
|
|
5
|
-
export declare function TableRow({ className, ...props }: React.ComponentProps<'tr'>): import("react
|
|
6
|
-
export declare function TableHead({ className, ...props }: React.ComponentProps<'th'>): import("react
|
|
7
|
-
export declare function TableCell({ className, ...props }: React.ComponentProps<'td'>): import("react
|
|
8
|
-
export declare function TableCaption({ className, ...props }: React.ComponentProps<'caption'>): import("react
|
|
1
|
+
export declare function Table({ className, ...props }: React.ComponentProps<'table'>): import("react").JSX.Element;
|
|
2
|
+
export declare function TableHeader({ className, ...props }: React.ComponentProps<'thead'>): import("react").JSX.Element;
|
|
3
|
+
export declare function TableBody({ className, ...props }: React.ComponentProps<'tbody'>): import("react").JSX.Element;
|
|
4
|
+
export declare function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>): import("react").JSX.Element;
|
|
5
|
+
export declare function TableRow({ className, ...props }: React.ComponentProps<'tr'>): import("react").JSX.Element;
|
|
6
|
+
export declare function TableHead({ className, ...props }: React.ComponentProps<'th'>): import("react").JSX.Element;
|
|
7
|
+
export declare function TableCell({ className, ...props }: React.ComponentProps<'td'>): import("react").JSX.Element;
|
|
8
|
+
export declare function TableCaption({ className, ...props }: React.ComponentProps<'caption'>): import("react").JSX.Element;
|
package/dist/components/table.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=table.js.map
|
|
1
|
+
import{classNames as e}from"../utilities/theme.js";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return t(`table`,{className:e(`table`,n),...r})}function r({className:n,...r}){return t(`thead`,{className:e(n),...r})}function i({className:n,...r}){return t(`tbody`,{className:e(n),...r})}function a({className:n,...r}){return t(`tfoot`,{className:e(n),...r})}function o({className:n,...r}){return t(`tr`,{className:e(n),...r})}function s({className:n,...r}){return t(`th`,{className:e(n),...r})}function c({className:n,...r}){return t(`td`,{className:e(n),...r})}function l({className:n,...r}){return t(`caption`,{className:e(n),...r})}export{n as Table,i as TableBody,l as TableCaption,c as TableCell,a as TableFooter,s as TableHead,r as TableHeader,o as TableRow};
|
|
2
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sources":["../../lib/components/table.tsx"],"sourcesContent":["import { classNames } from '../utilities/theme';\n\nexport function Table({ className, ...props }: React.ComponentProps<'table'>) {\n return <table className={classNames('table', className)} {...props} />;\n}\n\nexport function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n className={classNames(className)} // Added border-b to apply a bottom border\n {...props}\n />\n );\n}\n\nexport function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody className={classNames(className)} {...props} />;\n}\n\nexport function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot className={classNames(className)} {...props} />;\n}\n\nexport function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return <tr className={classNames(className)} {...props} />;\n}\n\nexport function TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return <th className={classNames(className)} {...props} />;\n}\n\nexport function TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return <td className={classNames(className)} {...props} />;\n}\n\nexport function TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption className={classNames(className)} {...props} />;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"table.js","names":[],"sources":["../../lib/components/table.tsx"],"sourcesContent":["import { classNames } from '../utilities/theme';\n\nexport function Table({ className, ...props }: React.ComponentProps<'table'>) {\n return <table className={classNames('table', className)} {...props} />;\n}\n\nexport function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n className={classNames(className)} // Added border-b to apply a bottom border\n {...props}\n />\n );\n}\n\nexport function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody className={classNames(className)} {...props} />;\n}\n\nexport function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot className={classNames(className)} {...props} />;\n}\n\nexport function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return <tr className={classNames(className)} {...props} />;\n}\n\nexport function TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return <th className={classNames(className)} {...props} />;\n}\n\nexport function TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return <td className={classNames(className)} {...props} />;\n}\n\nexport function TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption className={classNames(className)} {...props} />;\n}\n"],"mappings":"2FAEA,SAAgB,EAAM,CAAE,YAAW,GAAG,GAAwC,CAC1E,OAAO,EAAC,QAAD,CAAO,UAAW,EAAW,QAAS,CAAS,EAAG,GAAI,CAAQ,CAAA,CACzE,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAwC,CAChF,OACI,EAAC,QAAD,CACI,UAAW,EAAW,CAAS,EAC/B,GAAI,CACP,CAAA,CAET,CAEA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAwC,CAC9E,OAAO,EAAC,QAAD,CAAO,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAChE,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAwC,CAChF,OAAO,EAAC,QAAD,CAAO,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAChE,CAEA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAqC,CAC1E,OAAO,EAAC,KAAD,CAAI,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC7D,CAEA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAqC,CAC3E,OAAO,EAAC,KAAD,CAAI,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC7D,CAEA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAqC,CAC3E,OAAO,EAAC,KAAD,CAAI,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC7D,CAEA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAA0C,CACnF,OAAO,EAAC,UAAD,CAAS,UAAW,EAAW,CAAS,EAAG,GAAI,CAAQ,CAAA,CAClE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TabListProps as AriaTabListProps, TabPanelProps as AriaTabPanelProps, TabProps as AriaTabProps, TabsProps as AriaTabsProps } from 'react-aria-components';
|
|
2
|
-
export declare function Tabs({ className, ...props }: AriaTabsProps): import("react
|
|
3
|
-
export declare function TabList<T extends object>({ className, ...props }: AriaTabListProps<T>): import("react
|
|
4
|
-
export declare function Tab({ className, ...props }: AriaTabProps): import("react
|
|
5
|
-
export declare function TabPanel({ className, ...props }: AriaTabPanelProps): import("react
|
|
2
|
+
export declare function Tabs({ className, ...props }: AriaTabsProps): import("react").JSX.Element;
|
|
3
|
+
export declare function TabList<T extends object>({ className, ...props }: AriaTabListProps<T>): import("react").JSX.Element;
|
|
4
|
+
export declare function Tab({ className, ...props }: AriaTabProps): import("react").JSX.Element;
|
|
5
|
+
export declare function TabPanel({ className, ...props }: AriaTabPanelProps): import("react").JSX.Element;
|
package/dist/components/tabs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=tabs.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{useEffect as t,useRef as n}from"react";import{jsx as r}from"react/jsx-runtime";import{Tab as i,TabList as a,TabPanel as o,Tabs as s,composeRenderProps as c}from"react-aria-components";function l({className:t,...n}){return r(s,{className:c(t,t=>e(`group flex flex-col gap-2`,`data-[orientation=vertical]:flex-row`,t)),...n})}function u({className:i,...o}){let s=n(null);return t(()=>{let e=s.current;if(!e)return;let t=new MutationObserver(()=>{let t=e.querySelector(`[data-selected]`);t&&requestAnimationFrame(()=>{t.scrollIntoView({behavior:`smooth`,inline:`center`,block:`nearest`})})});return t.observe(e,{attributes:!0,subtree:!0,attributeFilter:[`data-selected`]}),()=>t.disconnect()},[]),r(a,{ref:s,className:c(i,t=>e(`inline-flex items-center text-muted-foreground overflow-auto`,`data-[orientation=horizontal]:border-b data-[orientation=vertical]:h-auto data-[orientation=vertical]:border-e data-[orientation=vertical]:flex-col`,t)),...o})}function d({className:t,...n}){return r(i,{className:c(t,t=>e(`btn-tab`,`group-data-[orientation=vertical]:w-full`,t)),...n})}function f({className:t,...n}){return r(o,{className:c(t,t=>e(`ring-offset-surface-secondary`,`focus-ring`,t)),...n})}export{d as Tab,u as TabList,f as TabPanel,l as Tabs};
|
|
2
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../lib/components/tabs.tsx"],"sourcesContent":["'use client';\nimport { useEffect, useRef } from 'react';\nimport {\n Tab as AriaTab,\n TabList as AriaTabList,\n TabListProps as AriaTabListProps,\n TabPanel as AriaTabPanel,\n TabPanelProps as AriaTabPanelProps,\n TabProps as AriaTabProps,\n Tabs as AriaTabs,\n TabsProps as AriaTabsProps,\n composeRenderProps,\n} from 'react-aria-components';\nimport { classNames } from '../utilities/theme';\n\nexport function Tabs({ className, ...props }: AriaTabsProps) {\n return (\n <AriaTabs\n className={composeRenderProps(className, className =>\n classNames(\n 'group flex flex-col gap-2',\n /* Orientation */\n 'data-[orientation=vertical]:flex-row',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function TabList<T extends object>({ className, ...props }: AriaTabListProps<T>) {\n const listRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const tabList = listRef.current;\n if (!tabList) return;\n\n const observer = new MutationObserver(() => {\n const activeTab = tabList.querySelector<HTMLElement>('[data-selected]');\n\n if (activeTab) {\n requestAnimationFrame(() => {\n activeTab.scrollIntoView({\n behavior: 'smooth',\n inline: 'center',\n block: 'nearest',\n });\n });\n }\n });\n\n observer.observe(tabList, {\n attributes: true,\n subtree: true,\n attributeFilter: ['data-selected'],\n });\n\n return () => observer.disconnect();\n }, []);\n\n return (\n <AriaTabList\n ref={listRef}\n className={composeRenderProps(className, className =>\n classNames(\n 'inline-flex items-center text-muted-foreground overflow-auto',\n /* Orientation */\n 'data-[orientation=horizontal]:border-b data-[orientation=vertical]:h-auto data-[orientation=vertical]:border-e data-[orientation=vertical]:flex-col',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function Tab({ className, ...props }: AriaTabProps) {\n return (\n <AriaTab\n className={composeRenderProps(className, className =>\n classNames(\n 'btn-tab',\n /* Orientation */\n 'group-data-[orientation=vertical]:w-full',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function TabPanel({ className, ...props }: AriaTabPanelProps) {\n return (\n <AriaTabPanel\n className={composeRenderProps(className, className =>\n classNames(\n 'ring-offset-surface-secondary',\n /* Focus Visible */\n 'focus-ring',\n className\n )\n )}\n {...props}\n />\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"tabs.js","names":[],"sources":["../../lib/components/tabs.tsx"],"sourcesContent":["'use client';\nimport { useEffect, useRef } from 'react';\nimport {\n Tab as AriaTab,\n TabList as AriaTabList,\n TabListProps as AriaTabListProps,\n TabPanel as AriaTabPanel,\n TabPanelProps as AriaTabPanelProps,\n TabProps as AriaTabProps,\n Tabs as AriaTabs,\n TabsProps as AriaTabsProps,\n composeRenderProps,\n} from 'react-aria-components';\nimport { classNames } from '../utilities/theme';\n\nexport function Tabs({ className, ...props }: AriaTabsProps) {\n return (\n <AriaTabs\n className={composeRenderProps(className, className =>\n classNames(\n 'group flex flex-col gap-2',\n /* Orientation */\n 'data-[orientation=vertical]:flex-row',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function TabList<T extends object>({ className, ...props }: AriaTabListProps<T>) {\n const listRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const tabList = listRef.current;\n if (!tabList) return;\n\n const observer = new MutationObserver(() => {\n const activeTab = tabList.querySelector<HTMLElement>('[data-selected]');\n\n if (activeTab) {\n requestAnimationFrame(() => {\n activeTab.scrollIntoView({\n behavior: 'smooth',\n inline: 'center',\n block: 'nearest',\n });\n });\n }\n });\n\n observer.observe(tabList, {\n attributes: true,\n subtree: true,\n attributeFilter: ['data-selected'],\n });\n\n return () => observer.disconnect();\n }, []);\n\n return (\n <AriaTabList\n ref={listRef}\n className={composeRenderProps(className, className =>\n classNames(\n 'inline-flex items-center text-muted-foreground overflow-auto',\n /* Orientation */\n 'data-[orientation=horizontal]:border-b data-[orientation=vertical]:h-auto data-[orientation=vertical]:border-e data-[orientation=vertical]:flex-col',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function Tab({ className, ...props }: AriaTabProps) {\n return (\n <AriaTab\n className={composeRenderProps(className, className =>\n classNames(\n 'btn-tab',\n /* Orientation */\n 'group-data-[orientation=vertical]:w-full',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport function TabPanel({ className, ...props }: AriaTabPanelProps) {\n return (\n <AriaTabPanel\n className={composeRenderProps(className, className =>\n classNames(\n 'ring-offset-surface-secondary',\n /* Focus Visible */\n 'focus-ring',\n className\n )\n )}\n {...props}\n />\n );\n}\n"],"mappings":"+PAeA,SAAgB,EAAK,CAAE,YAAW,GAAG,GAAwB,CACzD,OACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,4BAEA,uCACA,CACJ,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAEA,SAAgB,EAA0B,CAAE,YAAW,GAAG,GAA8B,CACpF,IAAM,EAAU,EAAuB,IAAI,EA6B3C,OA3BA,MAAgB,CACZ,IAAM,EAAU,EAAQ,QACxB,GAAI,CAAC,EAAS,OAEd,IAAM,EAAW,IAAI,qBAAuB,CACxC,IAAM,EAAY,EAAQ,cAA2B,iBAAiB,EAElE,GACA,0BAA4B,CACxB,EAAU,eAAe,CACrB,SAAU,SACV,OAAQ,SACR,MAAO,SACX,CAAC,CACL,CAAC,CAET,CAAC,EAQD,OANA,EAAS,QAAQ,EAAS,CACtB,WAAY,GACZ,QAAS,GACT,gBAAiB,CAAC,eAAe,CACrC,CAAC,MAEY,EAAS,WAAW,CACrC,EAAG,CAAC,CAAC,EAGD,EAAC,EAAD,CACI,IAAK,EACL,UAAW,EAAmB,EAAW,GACrC,EACI,+DAEA,sJACA,CACJ,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAEA,SAAgB,EAAI,CAAE,YAAW,GAAG,GAAuB,CACvD,OACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,UAEA,2CACA,CACJ,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAEA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAA4B,CACjE,OACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,gCAEA,aACA,CACJ,CACJ,EACA,GAAI,CACP,CAAA,CAET"}
|
|
@@ -2,5 +2,5 @@ import { TagGroupProps as AriaTagGroupProps, TagListProps, TagProps as AriaTagPr
|
|
|
2
2
|
export interface TagGroupProps<T extends object> extends Omit<AriaTagGroupProps, 'children' | 'className'>, Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState' | 'className'> {
|
|
3
3
|
}
|
|
4
4
|
export type TagProps = AriaTagProps;
|
|
5
|
-
export declare function TagGroup<T extends object>({ items, children, renderEmptyState, className, ...props }: TagGroupProps<T>): import("react
|
|
6
|
-
export declare function Tag({ children, className, ...props }: TagProps): import("react
|
|
5
|
+
export declare function TagGroup<T extends object>({ items, children, renderEmptyState, className, ...props }: TagGroupProps<T>): import("react").JSX.Element;
|
|
6
|
+
export declare function Tag({ children, className, ...props }: TagProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=tag-group.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{Ot as t}from"../icons.js";import{Button as n}from"./button.js";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{Tag as o,TagGroup as s,TagList as c,composeRenderProps as l}from"react-aria-components";var u=`body-sm rounded-sm inline-flex items-center gap-1 px-2 h-input-sm cursor-default select-none border border-stroke-primary`;function d({items:t,children:n,renderEmptyState:r,className:a,...o}){return i(s,{selectionMode:`none`,...o,children:i(c,{items:t,renderEmptyState:r,className:l(a,t=>e(`flex flex-wrap gap-1`,t)),children:n})})}function f({children:s,className:c,...d}){return i(o,{textValue:typeof s==`string`?s:void 0,className:l(c,(t,n)=>e(u,`bg-surface-secondary text-muted`,n.isDisabled&&`disabled-muted cursor-not-allowed`,t)),...d,children:l(s,(e,{allowsRemoving:o})=>a(r,{children:[e,o&&i(n,{slot:`remove`,size:`none`,variant:`ghost`,className:`rounded-full p-0.5`,children:i(t,{"aria-hidden":!0,className:`size-icon`})})]}))})}export{f as Tag,d as TagGroup};
|
|
2
|
+
//# sourceMappingURL=tag-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-group.js","sources":["../../lib/components/tag-group.tsx"],"sourcesContent":["'use client';\n\nimport {\n Tag as AriaTag,\n TagGroup as AriaTagGroup,\n TagList,\n composeRenderProps,\n type TagGroupProps as AriaTagGroupProps,\n type TagListProps,\n type TagProps as AriaTagProps,\n} from 'react-aria-components';\n\nimport { classNames } from '../utilities/theme';\nimport { IcRemove } from './icons';\nimport { Button } from './button';\n\nconst tagBase =\n 'body-sm rounded-sm inline-flex items-center gap-1 px-2 h-input-sm cursor-default select-none border border-stroke-primary';\n\nexport interface TagGroupProps<T extends object>\n extends Omit<AriaTagGroupProps, 'children' | 'className'>,\n Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState' | 'className'> {}\n\nexport type TagProps = AriaTagProps;\n\nexport function TagGroup<T extends object>({\n items,\n children,\n renderEmptyState,\n className,\n ...props\n}: TagGroupProps<T>) {\n return (\n <AriaTagGroup selectionMode=\"none\" {...props}>\n <TagList\n items={items}\n renderEmptyState={renderEmptyState}\n className={composeRenderProps(className, className => classNames('flex flex-wrap gap-1', className))}\n >\n {children}\n </TagList>\n </AriaTagGroup>\n );\n}\n\nexport function Tag({ children, className, ...props }: TagProps) {\n const textValue = typeof children === 'string' ? children : undefined;\n\n return (\n <AriaTag\n textValue={textValue}\n className={composeRenderProps(className, (className, renderProps) =>\n classNames(\n tagBase,\n 'bg-surface-secondary text-muted',\n renderProps.isDisabled && 'disabled-muted cursor-not-allowed',\n className\n )\n )}\n {...props}\n >\n {composeRenderProps(children, (children, { allowsRemoving }) => (\n <>\n {children}\n {allowsRemoving && (\n <Button slot=\"remove\" size=\"none\" variant=\"ghost\" className=\"rounded-full p-0.5\">\n <IcRemove aria-hidden className=\"size-icon\" />\n </Button>\n )}\n </>\n ))}\n </AriaTag>\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"tag-group.js","names":[],"sources":["../../lib/components/tag-group.tsx"],"sourcesContent":["'use client';\n\nimport {\n Tag as AriaTag,\n TagGroup as AriaTagGroup,\n TagList,\n composeRenderProps,\n type TagGroupProps as AriaTagGroupProps,\n type TagListProps,\n type TagProps as AriaTagProps,\n} from 'react-aria-components';\n\nimport { classNames } from '../utilities/theme';\nimport { IcRemove } from './icons';\nimport { Button } from './button';\n\nconst tagBase =\n 'body-sm rounded-sm inline-flex items-center gap-1 px-2 h-input-sm cursor-default select-none border border-stroke-primary';\n\nexport interface TagGroupProps<T extends object>\n extends Omit<AriaTagGroupProps, 'children' | 'className'>,\n Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState' | 'className'> {}\n\nexport type TagProps = AriaTagProps;\n\nexport function TagGroup<T extends object>({\n items,\n children,\n renderEmptyState,\n className,\n ...props\n}: TagGroupProps<T>) {\n return (\n <AriaTagGroup selectionMode=\"none\" {...props}>\n <TagList\n items={items}\n renderEmptyState={renderEmptyState}\n className={composeRenderProps(className, className => classNames('flex flex-wrap gap-1', className))}\n >\n {children}\n </TagList>\n </AriaTagGroup>\n );\n}\n\nexport function Tag({ children, className, ...props }: TagProps) {\n const textValue = typeof children === 'string' ? children : undefined;\n\n return (\n <AriaTag\n textValue={textValue}\n className={composeRenderProps(className, (className, renderProps) =>\n classNames(\n tagBase,\n 'bg-surface-secondary text-muted',\n renderProps.isDisabled && 'disabled-muted cursor-not-allowed',\n className\n )\n )}\n {...props}\n >\n {composeRenderProps(children, (children, { allowsRemoving }) => (\n <>\n {children}\n {allowsRemoving && (\n <Button slot=\"remove\" size=\"none\" variant=\"ghost\" className=\"rounded-full p-0.5\">\n <IcRemove aria-hidden className=\"size-icon\" />\n </Button>\n )}\n </>\n ))}\n </AriaTag>\n );\n}\n"],"mappings":"qSAgBA,IAAM,EACF,4HAQJ,SAAgB,EAA2B,CACvC,QACA,WACA,mBACA,YACA,GAAG,GACc,CACjB,OACI,EAAC,EAAD,CAAc,cAAc,OAAO,GAAI,EACnC,SAAA,EAAC,EAAD,CACW,QACW,mBAClB,UAAW,EAAmB,EAAW,GAAa,EAAW,uBAAwB,CAAS,CAAC,EAElG,UACI,CAAA,CACC,CAAA,CAEtB,CAEA,SAAgB,EAAI,CAAE,WAAU,YAAW,GAAG,GAAmB,CAG7D,OACI,EAAC,EAAD,CACe,UAJD,OAAO,GAAa,SAAW,EAAW,IAAA,GAKpD,UAAW,EAAmB,GAAY,EAAW,IACjD,EACI,EACA,kCACA,EAAY,YAAc,oCAC1B,CACJ,CACJ,EACA,GAAI,EAEH,SAAA,EAAmB,GAAW,EAAU,CAAE,oBACvC,EAAA,EAAA,CAAA,SAAA,CACK,EACA,GACG,EAAC,EAAD,CAAQ,KAAK,SAAS,KAAK,OAAO,QAAQ,QAAQ,UAAU,qBACxD,SAAA,EAAC,EAAD,CAAU,cAAA,GAAY,UAAU,WAAa,CAAA,CACzC,CAAA,CAEd,CAAA,CAAA,CACL,CACI,CAAA,CAEjB"}
|
|
@@ -5,5 +5,5 @@ export interface TextFieldProps extends AriaTextFieldProps, FormFieldProps {
|
|
|
5
5
|
inputClassName?: string;
|
|
6
6
|
kbd?: string | string[];
|
|
7
7
|
}
|
|
8
|
-
export declare function TextField({ label, description, errorMessage, textArea, className, inputClassName, requiredIndicator, kbd, isDisabled, ...props }: TextFieldProps): import("react
|
|
9
|
-
export declare function TfTextField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof TextField>, 'onBlur' | 'onChange'>): import("react
|
|
8
|
+
export declare function TextField({ label, description, errorMessage, textArea, className, inputClassName, requiredIndicator, kbd, isDisabled, ...props }: TextFieldProps): import("react").JSX.Element;
|
|
9
|
+
export declare function TfTextField({ isDisabled, ...props }: Omit<React.ComponentProps<typeof TextField>, 'onBlur' | 'onChange'>): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=textfield.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{useFieldContext as t}from"../utilities/form-context.js";import{FormField as n,fieldGroupVariants as r}from"./form.js";import{getFieldErrorMessage as i}from"../utilities/form.js";import{Kbd as a}from"./kbd.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{Input as c,TextArea as l,TextField as u,composeRenderProps as d}from"react-aria-components";var f=u;function p({className:t,kbd:n,...i}){let l=!!n,u=i.disabled;return s(`div`,{className:`relative`,children:[o(c,{className:d(t,t=>e(r(),`file:border-0 file:bg-transparent file:body-sm file:font-medium`,`disabled-muted`,`focus-ring`,l&&`pr-10`,t)),...i}),l&&o(`div`,{className:`absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none flex items-center`,"aria-hidden":!0,children:o(a,{value:n,isDisabled:u})})]})}function m({className:t,...n}){return o(l,{className:d(t,t=>e(r(),`h-full min-h-32`,t)),...n})}function h({label:t,description:r,errorMessage:i,textArea:a,className:s,inputClassName:c,requiredIndicator:l,kbd:u,isDisabled:h,...g}){return o(f,{className:d(s,t=>e(`group form-field`,t)),isDisabled:h,...g,children:o(n,{label:t,description:r,errorMessage:i,requiredIndicator:l,children:a?o(m,{className:c}):o(p,{className:c,kbd:u})})})}function g({isDisabled:e,...n}){let r=t({disabled:e});return o(h,{isDisabled:e||r.isSubmitting,value:r.state.value,id:r.name,name:r.name,onBlur:r.handleBlur,onChange:r.handleChange,isInvalid:!!i(r),errorMessage:i(r),requiredIndicator:r.isRequired,...n})}export{h as TextField,g as TfTextField};
|
|
2
|
+
//# sourceMappingURL=textfield.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textfield.js","sources":["../../lib/components/textfield.tsx"],"sourcesContent":["'use client';\nimport {\n Input as AriaInput,\n InputProps as AriaInputProps,\n TextArea as AriaTextArea,\n TextAreaProps as AriaTextAreaProps,\n TextField as AriaTextField,\n TextFieldProps as AriaTextFieldProps,\n composeRenderProps,\n} from 'react-aria-components';\nimport { getFieldErrorMessage } from '../utilities/form';\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { fieldGroupVariants, FormField, type FormFieldProps } from './form';\nimport { Kbd } from './kbd';\n\nconst ATextField = AriaTextField;\n\ninterface InputProps extends AriaInputProps {\n kbd?: string | string[];\n}\n\nfunction Input({ className, kbd, ...props }: InputProps) {\n const hasKbd = !!kbd;\n const isDisabled = props.disabled;\n return (\n <div className=\"relative\">\n <AriaInput\n className={composeRenderProps(className, className =>\n classNames(\n fieldGroupVariants(),\n 'file:border-0 file:bg-transparent file:body-sm file:font-medium',\n /* Disabled */\n 'disabled-muted',\n /* Focused */\n 'focus-ring',\n hasKbd && 'pr-10',\n className\n )\n )}\n {...props}\n />\n\n {hasKbd && (\n <div\n className=\"absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none flex items-center\"\n aria-hidden={true}\n >\n <Kbd value={kbd} isDisabled={isDisabled} />\n </div>\n )}\n </div>\n );\n}\n\nfunction TextArea({ className, ...props }: AriaTextAreaProps) {\n return (\n <AriaTextArea\n className={composeRenderProps(className, className =>\n classNames(fieldGroupVariants(), 'h-full min-h-32', className)\n )}\n {...props}\n />\n );\n}\n\nexport interface TextFieldProps extends AriaTextFieldProps, FormFieldProps {\n textArea?: boolean;\n inputClassName?: string;\n kbd?: string | string[];\n}\n\nexport function TextField({\n label,\n description,\n errorMessage,\n textArea,\n className,\n inputClassName,\n requiredIndicator,\n kbd,\n isDisabled,\n ...props\n}: TextFieldProps) {\n return (\n <ATextField\n className={composeRenderProps(className, className => classNames('group form-field', className))}\n isDisabled={isDisabled}\n {...props}\n >\n <FormField {...{ label, description, errorMessage, requiredIndicator }}>\n {textArea ? <TextArea className={inputClassName} /> : <Input className={inputClassName} kbd={kbd} />}\n </FormField>\n </ATextField>\n );\n}\n\nexport function TfTextField({\n isDisabled,\n ...props\n}: Omit<React.ComponentProps<typeof TextField>, 'onBlur' | 'onChange'>) {\n const field = useFieldContext<string>({ disabled: isDisabled });\n\n return (\n <TextField\n isDisabled={isDisabled || field.isSubmitting}\n value={field.state.value}\n id={field.name}\n name={field.name}\n onBlur={field.handleBlur}\n onChange={field.handleChange}\n isInvalid={!!getFieldErrorMessage(field)}\n errorMessage={getFieldErrorMessage(field)}\n requiredIndicator={field.isRequired}\n {...props}\n />\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"textfield.js","names":[],"sources":["../../lib/components/textfield.tsx"],"sourcesContent":["'use client';\nimport {\n Input as AriaInput,\n InputProps as AriaInputProps,\n TextArea as AriaTextArea,\n TextAreaProps as AriaTextAreaProps,\n TextField as AriaTextField,\n TextFieldProps as AriaTextFieldProps,\n composeRenderProps,\n} from 'react-aria-components';\nimport { getFieldErrorMessage } from '../utilities/form';\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { fieldGroupVariants, FormField, type FormFieldProps } from './form';\nimport { Kbd } from './kbd';\n\nconst ATextField = AriaTextField;\n\ninterface InputProps extends AriaInputProps {\n kbd?: string | string[];\n}\n\nfunction Input({ className, kbd, ...props }: InputProps) {\n const hasKbd = !!kbd;\n const isDisabled = props.disabled;\n return (\n <div className=\"relative\">\n <AriaInput\n className={composeRenderProps(className, className =>\n classNames(\n fieldGroupVariants(),\n 'file:border-0 file:bg-transparent file:body-sm file:font-medium',\n /* Disabled */\n 'disabled-muted',\n /* Focused */\n 'focus-ring',\n hasKbd && 'pr-10',\n className\n )\n )}\n {...props}\n />\n\n {hasKbd && (\n <div\n className=\"absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none flex items-center\"\n aria-hidden={true}\n >\n <Kbd value={kbd} isDisabled={isDisabled} />\n </div>\n )}\n </div>\n );\n}\n\nfunction TextArea({ className, ...props }: AriaTextAreaProps) {\n return (\n <AriaTextArea\n className={composeRenderProps(className, className =>\n classNames(fieldGroupVariants(), 'h-full min-h-32', className)\n )}\n {...props}\n />\n );\n}\n\nexport interface TextFieldProps extends AriaTextFieldProps, FormFieldProps {\n textArea?: boolean;\n inputClassName?: string;\n kbd?: string | string[];\n}\n\nexport function TextField({\n label,\n description,\n errorMessage,\n textArea,\n className,\n inputClassName,\n requiredIndicator,\n kbd,\n isDisabled,\n ...props\n}: TextFieldProps) {\n return (\n <ATextField\n className={composeRenderProps(className, className => classNames('group form-field', className))}\n isDisabled={isDisabled}\n {...props}\n >\n <FormField {...{ label, description, errorMessage, requiredIndicator }}>\n {textArea ? <TextArea className={inputClassName} /> : <Input className={inputClassName} kbd={kbd} />}\n </FormField>\n </ATextField>\n );\n}\n\nexport function TfTextField({\n isDisabled,\n ...props\n}: Omit<React.ComponentProps<typeof TextField>, 'onBlur' | 'onChange'>) {\n const field = useFieldContext<string>({ disabled: isDisabled });\n\n return (\n <TextField\n isDisabled={isDisabled || field.isSubmitting}\n value={field.state.value}\n id={field.name}\n name={field.name}\n onBlur={field.handleBlur}\n onChange={field.handleChange}\n isInvalid={!!getFieldErrorMessage(field)}\n errorMessage={getFieldErrorMessage(field)}\n requiredIndicator={field.isRequired}\n {...props}\n />\n );\n}\n"],"mappings":"6aAgBA,IAAM,EAAa,EAMnB,SAAS,EAAM,CAAE,YAAW,MAAK,GAAG,GAAqB,CACrD,IAAM,EAAS,CAAC,CAAC,EACX,EAAa,EAAM,SACzB,OACI,EAAC,MAAD,CAAK,UAAU,WAAf,SAAA,CACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,EAAmB,EACnB,kEAEA,iBAEA,aACA,GAAU,QACV,CACJ,CACJ,EACA,GAAI,CACP,CAAA,EAEA,GACG,EAAC,MAAD,CACI,UAAU,kFACV,cAAa,GAEb,SAAA,EAAC,EAAD,CAAK,MAAO,EAAiB,YAAa,CAAA,CACzC,CAAA,CAER,GAEb,CAEA,SAAS,EAAS,CAAE,YAAW,GAAG,GAA4B,CAC1D,OACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EAAW,EAAmB,EAAG,kBAAmB,CAAS,CACjE,EACA,GAAI,CACP,CAAA,CAET,CAQA,SAAgB,EAAU,CACtB,QACA,cACA,eACA,WACA,YACA,iBACA,oBACA,MACA,aACA,GAAG,GACY,CACf,OACI,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GAAa,EAAW,mBAAoB,CAAS,CAAC,EACnF,aACZ,GAAI,EAEJ,SAAA,EAAC,EAAD,CAAiB,QAAO,cAAa,eAAc,oBAC9C,SAAA,EAAW,EAAC,EAAD,CAAU,UAAW,CAAiB,CAAA,EAAI,EAAC,EAAD,CAAO,UAAW,EAAqB,KAAM,CAAA,CAC5F,CAAA,CACH,CAAA,CAEpB,CAEA,SAAgB,EAAY,CACxB,aACA,GAAG,GACiE,CACpE,IAAM,EAAQ,EAAwB,CAAE,SAAU,CAAW,CAAC,EAE9D,OACI,EAAC,EAAD,CACI,WAAY,GAAc,EAAM,aAChC,MAAO,EAAM,MAAM,MACnB,GAAI,EAAM,KACV,KAAM,EAAM,KACZ,OAAQ,EAAM,WACd,SAAU,EAAM,aAChB,UAAW,CAAC,CAAC,EAAqB,CAAK,EACvC,aAAc,EAAqB,CAAK,EACxC,kBAAmB,EAAM,WACzB,GAAI,CACP,CAAA,CAET"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import { CtxIcon } from './icons';
|
|
3
|
-
export declare function Timeline({ className, ...props }: React.ComponentProps<'ol'>): import("react
|
|
4
|
-
export declare function TimelineItem({ className, ...props }: React.ComponentProps<'li'> & {}): import("react
|
|
3
|
+
export declare function Timeline({ className, ...props }: React.ComponentProps<'ol'>): import("react").JSX.Element;
|
|
4
|
+
export declare function TimelineItem({ className, ...props }: React.ComponentProps<'li'> & {}): import("react").JSX.Element;
|
|
5
5
|
export declare const timelineIconVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "destructive" | "success" | "muted" | null | undefined;
|
|
7
7
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
8
|
export declare function TimelineIcon({ icon: Icon, className, variant, ...props }: Omit<React.ComponentProps<'div'>, 'children'> & VariantProps<typeof timelineIconVariants> & {
|
|
9
9
|
icon: CtxIcon;
|
|
10
|
-
}): import("react
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
11
|
export declare function TimelineDate({ className, date, dateFormatter, ...props }: Omit<React.ComponentProps<'time'>, 'dateTime' | 'children'> & {
|
|
12
12
|
date: Date;
|
|
13
13
|
dateFormatter?: (d: Date) => string;
|
|
14
|
-
}): import("react
|
|
15
|
-
export declare function TimelineContent({ className, ...props }: React.ComponentProps<'section'>): import("react
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
export declare function TimelineContent({ className, ...props }: React.ComponentProps<'section'>): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
2
|
-
//# sourceMappingURL=timeline.js.map
|
|
1
|
+
import{classNames as e}from"../utilities/theme.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";function i({className:n,...r}){return t(`ol`,{className:e(`grid grid-col-1 gap-icon`,n),...r})}function a({className:n,...r}){return t(`li`,{className:e(`grid grid-cols-[4rem_2rem_1fr] grid-rows-subgrid list-none gap-icon`,n),...r})}var o=r(`p-1 rounded-full`,{variants:{variant:{destructive:`text-destructive-foreground bg-destructive`,success:`text-success-foreground bg-success`,muted:`text-muted-foreground bg-muted`}},defaultVariants:{variant:`muted`}});function s({icon:r,className:i,variant:a,...s}){return n(`div`,{...s,className:`flex flex-col items-center gap-2`,children:[t(`div`,{className:e(o({variant:a,className:i})),children:t(r,{className:`size-icon `})}),t(`div`,{className:`h-full w-[1px]`})]})}function c({className:n,date:r,dateFormatter:i,...a}){let o=`${(r.getMonth()+1).toString().padStart(2,`0`)}-${r.getFullYear()}`;return t(`time`,{...a,dateTime:r.toISOString(),className:e(`font-mono leading-none text-muted`,n),children:i?i(r):o})}function l({className:n,...r}){return t(`section`,{className:e(``,n),...r})}export{i as Timeline,l as TimelineContent,c as TimelineDate,s as TimelineIcon,a as TimelineItem,o as timelineIconVariants};
|
|
2
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sources":["../../lib/components/timeline.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { classNames } from '../utilities/theme';\nimport type { CtxIcon } from './icons';\n\nexport function Timeline({ className, ...props }: React.ComponentProps<'ol'>) {\n return <ol className={classNames('grid grid-col-1 gap-icon', className)} {...props} />;\n}\n\nexport function TimelineItem({ className, ...props }: React.ComponentProps<'li'> & {}) {\n return (\n <li\n className={classNames('grid grid-cols-[4rem_2rem_1fr] grid-rows-subgrid list-none gap-icon', className)}\n {...props}\n />\n );\n}\n\nexport const timelineIconVariants = cva(`p-1 rounded-full`, {\n variants: {\n variant: {\n destructive: 'text-destructive-foreground bg-destructive',\n success: 'text-success-foreground bg-success',\n muted: 'text-muted-foreground bg-muted',\n },\n },\n defaultVariants: {\n variant: 'muted',\n },\n});\n\nexport function TimelineIcon({\n icon: Icon,\n className,\n variant,\n ...props\n}: Omit<React.ComponentProps<'div'>, 'children'> &\n VariantProps<typeof timelineIconVariants> & {\n icon: CtxIcon;\n }) {\n return (\n <div {...props} className=\"flex flex-col items-center gap-2\">\n <div className={classNames(timelineIconVariants({ variant, className }))}>\n <Icon className=\"size-icon \" />\n </div>\n <div className=\"h-full w-[1px]\" />\n </div>\n );\n}\n\nexport function TimelineDate({\n className,\n date,\n dateFormatter,\n ...props\n}: Omit<React.ComponentProps<'time'>, 'dateTime' | 'children'> & {\n date: Date;\n dateFormatter?: (d: Date) => string;\n}) {\n const defaultDateDisplay = `${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`;\n return (\n <time\n {...props}\n dateTime={date.toISOString()}\n className={classNames('font-mono leading-none text-muted', className)}\n >\n {dateFormatter ? dateFormatter(date) : defaultDateDisplay}\n </time>\n );\n}\n\nexport function TimelineContent({ className, ...props }: React.ComponentProps<'section'>) {\n return <section className={classNames('', className)} {...props} />;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"timeline.js","names":[],"sources":["../../lib/components/timeline.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { classNames } from '../utilities/theme';\nimport type { CtxIcon } from './icons';\n\nexport function Timeline({ className, ...props }: React.ComponentProps<'ol'>) {\n return <ol className={classNames('grid grid-col-1 gap-icon', className)} {...props} />;\n}\n\nexport function TimelineItem({ className, ...props }: React.ComponentProps<'li'> & {}) {\n return (\n <li\n className={classNames('grid grid-cols-[4rem_2rem_1fr] grid-rows-subgrid list-none gap-icon', className)}\n {...props}\n />\n );\n}\n\nexport const timelineIconVariants = cva(`p-1 rounded-full`, {\n variants: {\n variant: {\n destructive: 'text-destructive-foreground bg-destructive',\n success: 'text-success-foreground bg-success',\n muted: 'text-muted-foreground bg-muted',\n },\n },\n defaultVariants: {\n variant: 'muted',\n },\n});\n\nexport function TimelineIcon({\n icon: Icon,\n className,\n variant,\n ...props\n}: Omit<React.ComponentProps<'div'>, 'children'> &\n VariantProps<typeof timelineIconVariants> & {\n icon: CtxIcon;\n }) {\n return (\n <div {...props} className=\"flex flex-col items-center gap-2\">\n <div className={classNames(timelineIconVariants({ variant, className }))}>\n <Icon className=\"size-icon \" />\n </div>\n <div className=\"h-full w-[1px]\" />\n </div>\n );\n}\n\nexport function TimelineDate({\n className,\n date,\n dateFormatter,\n ...props\n}: Omit<React.ComponentProps<'time'>, 'dateTime' | 'children'> & {\n date: Date;\n dateFormatter?: (d: Date) => string;\n}) {\n const defaultDateDisplay = `${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`;\n return (\n <time\n {...props}\n dateTime={date.toISOString()}\n className={classNames('font-mono leading-none text-muted', className)}\n >\n {dateFormatter ? dateFormatter(date) : defaultDateDisplay}\n </time>\n );\n}\n\nexport function TimelineContent({ className, ...props }: React.ComponentProps<'section'>) {\n return <section className={classNames('', className)} {...props} />;\n}\n"],"mappings":"oJAIA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAqC,CAC1E,OAAO,EAAC,KAAD,CAAI,UAAW,EAAW,2BAA4B,CAAS,EAAG,GAAI,CAAQ,CAAA,CACzF,CAEA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAA0C,CACnF,OACI,EAAC,KAAD,CACI,UAAW,EAAW,sEAAuE,CAAS,EACtG,GAAI,CACP,CAAA,CAET,CAEA,IAAa,EAAuB,EAAI,mBAAoB,CACxD,SAAU,CACN,QAAS,CACL,YAAa,6CACb,QAAS,qCACT,MAAO,gCACX,CACJ,EACA,gBAAiB,CACb,QAAS,OACb,CACJ,CAAC,EAED,SAAgB,EAAa,CACzB,KAAM,EACN,YACA,UACA,GAAG,GAIA,CACH,OACI,EAAC,MAAD,CAAK,GAAI,EAAO,UAAU,mCAA1B,SAAA,CACI,EAAC,MAAD,CAAK,UAAW,EAAW,EAAqB,CAAE,UAAS,WAAU,CAAC,CAAC,EACnE,SAAA,EAAC,EAAD,CAAM,UAAU,YAAc,CAAA,CAC7B,CAAA,EACL,EAAC,MAAD,CAAK,UAAU,gBAAkB,CAAA,CAChC,GAEb,CAEA,SAAgB,EAAa,CACzB,YACA,OACA,gBACA,GAAG,GAIJ,CACC,IAAM,EAAqB,IAAI,EAAK,SAAS,EAAI,EAAA,CAAG,SAAS,CAAC,CAAC,SAAS,EAAG,GAAG,EAAE,GAAG,EAAK,YAAY,IACpG,OACI,EAAC,OAAD,CACI,GAAI,EACJ,SAAU,EAAK,YAAY,EAC3B,UAAW,EAAW,oCAAqC,CAAS,EAEnE,SAAA,EAAgB,EAAc,CAAI,EAAI,CACrC,CAAA,CAEd,CAEA,SAAgB,EAAgB,CAAE,YAAW,GAAG,GAA0C,CACtF,OAAO,EAAC,UAAD,CAAS,UAAW,EAAW,GAAI,CAAS,EAAG,GAAI,CAAQ,CAAA,CACtE"}
|
|
@@ -12,7 +12,7 @@ export interface ToastProps {
|
|
|
12
12
|
* Toast provider.
|
|
13
13
|
* @returns The toast provider.
|
|
14
14
|
*/
|
|
15
|
-
export declare function ToastProvider(): import("react
|
|
15
|
+
export declare function ToastProvider(): import("react").JSX.Element;
|
|
16
16
|
/**
|
|
17
17
|
* Show a toast notification.
|
|
18
18
|
* @param title - The title of the toast.
|
package/dist/components/toast.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=toast.js.map
|
|
1
|
+
import{classNames as e}from"../utilities/theme.js";import{D as t,H as n,c as r,l as i}from"../icons.js";import{Button as a}from"./button.js";import{alertVariants as o}from"./alert.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{UNSTABLE_Toast as l,UNSTABLE_ToastContent as u,UNSTABLE_ToastQueue as d,UNSTABLE_ToastRegion as f}from"react-aria-components";import{flushSync as p}from"react-dom";var m=new d({wrapUpdate(e){`startViewTransition`in document?document.startViewTransition(()=>{p(e)}):e()}});function h(){return s(f,{queue:m,className:`fixed z-50 top-4 right-4 flex flex-col-reverse justify-end gap-2`,children:({toast:t})=>s(l,{style:{viewTransitionName:t.key},toast:t,className:`animate-in fade-in-0 slide-in-from-right duration-300 ease-out`,children:c(u,{className:e(o({variant:t.content.variant}),`flex flex-col items-stretch max-w-sm gap-2 w-full min-w-sm`),children:[c(`div`,{className:`flex flex-row items-start gap-3`,children:[s(`span`,{className:`shrink-0`,children:g(t.content.variant)}),c(`div`,{className:`flex-1 min-w-0`,children:[s(`p`,{slot:`title`,className:`font-medium body-base`,children:t.content.title}),t.content.description&&s(`p`,{slot:`description`,className:`body-sm`,children:t.content.description})]}),!t.content.autoDismiss&&c(a,{slot:`close`,size:`icon`,variant:`neutral`,className:`rounded-full border-none shrink-0 -mr-1 -mt-1`,children:[s(i,{className:`size-4`}),s(`span`,{className:`sr-only`,children:`Close`})]})]}),t.content.action&&s(`div`,{className:`flex w-full justify-end gap-2 mt-1`,children:s(a,{slot:`close`,onPress:()=>{t.content.action?.()},variant:`neutral`,className:`shrink-0`,children:t.content.actionLabel||`Action`})})]})})})}function g(e){switch(e){case`destructive`:return s(t,{});case`success`:return s(r,{});case`neutral`:return s(n,{});default:return s(n,{})}}function _({title:e,description:t,variant:n,autoDismiss:r=!0,action:i,actionLabel:a}){let o=r&&!i?{timeout:3e3}:{};m.add({title:e,description:t,variant:n,autoDismiss:r,action:i,actionLabel:a},o)}export{h as ToastProvider,_ as toast};
|
|
2
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","sources":["../../lib/components/toast.tsx"],"sourcesContent":["import type { VariantProps } from 'class-variance-authority';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n} from 'react-aria-components';\nimport { flushSync } from 'react-dom';\nimport { classNames } from '../utilities/theme';\nimport { alertVariants } from './alert';\nimport { Button } from './button';\nimport { IcCheck, IcClose, IcError, IcInfo } from './icons';\n\nexport interface ToastProps {\n title: string;\n description?: string;\n variant: VariantProps<typeof alertVariants>['variant'];\n action?: () => void;\n actionLabel?: string;\n autoDismiss?: boolean;\n}\n\n/**\n * Toast queue.\n * @returns The toast queue.\n */\nconst queue = new AriaToastQueue<ToastProps>({\n wrapUpdate(fn) {\n if ('startViewTransition' in document) {\n document.startViewTransition(() => {\n flushSync(fn);\n });\n } else {\n fn();\n }\n },\n});\n\n/**\n * Toast provider.\n * @returns The toast provider.\n */\nexport function ToastProvider() {\n return (\n <AriaToastRegion queue={queue} className=\"fixed z-50 top-4 right-4 flex flex-col-reverse justify-end gap-2\">\n {({ toast }) => (\n <AriaToast\n style={{ viewTransitionName: toast.key }}\n toast={toast}\n className=\"animate-in fade-in-0 slide-in-from-right duration-300 ease-out\"\n >\n <AriaToastContent\n className={classNames(\n alertVariants({ variant: toast.content.variant }),\n 'flex flex-col items-stretch max-w-sm gap-2 w-full min-w-sm'\n )}\n >\n <div className=\"flex flex-row items-start gap-3\">\n <span className=\"shrink-0\">{getToastIcon(toast.content.variant)}</span>\n <div className=\"flex-1 min-w-0\">\n <p slot=\"title\" className=\"font-medium body-base\">\n {toast.content.title}\n </p>\n {toast.content.description && (\n <p slot=\"description\" className=\"body-sm\">\n {toast.content.description}\n </p>\n )}\n </div>\n {!toast.content.autoDismiss && (\n <Button\n slot=\"close\"\n size=\"icon\"\n variant=\"neutral\"\n className=\"rounded-full border-none shrink-0 -mr-1 -mt-1\"\n >\n <IcClose className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </Button>\n )}\n </div>\n {toast.content.action && (\n <div className=\"flex w-full justify-end gap-2 mt-1\">\n <Button\n slot=\"close\"\n onPress={() => {\n toast.content.action?.();\n }}\n variant=\"neutral\"\n className=\"shrink-0\"\n >\n {toast.content.actionLabel || 'Action'}\n </Button>\n </div>\n )}\n </AriaToastContent>\n </AriaToast>\n )}\n </AriaToastRegion>\n );\n}\n\n/**\n * Get the icon for a toast notification.\n * @param variant - The variant of the toast.\n * @returns The icon for the toast.\n */\nfunction getToastIcon(variant: ToastProps['variant']) {\n switch (variant) {\n case 'destructive':\n return <IcError />;\n case 'success':\n return <IcCheck />;\n case 'neutral':\n return <IcInfo />;\n default:\n return <IcInfo />;\n }\n}\n\n/**\n * Show a toast notification.\n * @param title - The title of the toast.\n * @param description - The description of the toast.\n * @param variant - The variant of the toast.\n * @param autoDismiss - Whether to automatically dismiss the toast.\n */\nexport function toast({ title, description, variant, autoDismiss = true, action, actionLabel }: ToastProps) {\n const options = autoDismiss && !action ? { timeout: 3000 } : {};\n queue.add({ title, description, variant, autoDismiss, action, actionLabel }, options);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"toast.js","names":[],"sources":["../../lib/components/toast.tsx"],"sourcesContent":["import type { VariantProps } from 'class-variance-authority';\nimport {\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as AriaToastContent,\n UNSTABLE_ToastQueue as AriaToastQueue,\n UNSTABLE_ToastRegion as AriaToastRegion,\n} from 'react-aria-components';\nimport { flushSync } from 'react-dom';\nimport { classNames } from '../utilities/theme';\nimport { alertVariants } from './alert';\nimport { Button } from './button';\nimport { IcCheck, IcClose, IcError, IcInfo } from './icons';\n\nexport interface ToastProps {\n title: string;\n description?: string;\n variant: VariantProps<typeof alertVariants>['variant'];\n action?: () => void;\n actionLabel?: string;\n autoDismiss?: boolean;\n}\n\n/**\n * Toast queue.\n * @returns The toast queue.\n */\nconst queue = new AriaToastQueue<ToastProps>({\n wrapUpdate(fn) {\n if ('startViewTransition' in document) {\n document.startViewTransition(() => {\n flushSync(fn);\n });\n } else {\n fn();\n }\n },\n});\n\n/**\n * Toast provider.\n * @returns The toast provider.\n */\nexport function ToastProvider() {\n return (\n <AriaToastRegion queue={queue} className=\"fixed z-50 top-4 right-4 flex flex-col-reverse justify-end gap-2\">\n {({ toast }) => (\n <AriaToast\n style={{ viewTransitionName: toast.key }}\n toast={toast}\n className=\"animate-in fade-in-0 slide-in-from-right duration-300 ease-out\"\n >\n <AriaToastContent\n className={classNames(\n alertVariants({ variant: toast.content.variant }),\n 'flex flex-col items-stretch max-w-sm gap-2 w-full min-w-sm'\n )}\n >\n <div className=\"flex flex-row items-start gap-3\">\n <span className=\"shrink-0\">{getToastIcon(toast.content.variant)}</span>\n <div className=\"flex-1 min-w-0\">\n <p slot=\"title\" className=\"font-medium body-base\">\n {toast.content.title}\n </p>\n {toast.content.description && (\n <p slot=\"description\" className=\"body-sm\">\n {toast.content.description}\n </p>\n )}\n </div>\n {!toast.content.autoDismiss && (\n <Button\n slot=\"close\"\n size=\"icon\"\n variant=\"neutral\"\n className=\"rounded-full border-none shrink-0 -mr-1 -mt-1\"\n >\n <IcClose className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </Button>\n )}\n </div>\n {toast.content.action && (\n <div className=\"flex w-full justify-end gap-2 mt-1\">\n <Button\n slot=\"close\"\n onPress={() => {\n toast.content.action?.();\n }}\n variant=\"neutral\"\n className=\"shrink-0\"\n >\n {toast.content.actionLabel || 'Action'}\n </Button>\n </div>\n )}\n </AriaToastContent>\n </AriaToast>\n )}\n </AriaToastRegion>\n );\n}\n\n/**\n * Get the icon for a toast notification.\n * @param variant - The variant of the toast.\n * @returns The icon for the toast.\n */\nfunction getToastIcon(variant: ToastProps['variant']) {\n switch (variant) {\n case 'destructive':\n return <IcError />;\n case 'success':\n return <IcCheck />;\n case 'neutral':\n return <IcInfo />;\n default:\n return <IcInfo />;\n }\n}\n\n/**\n * Show a toast notification.\n * @param title - The title of the toast.\n * @param description - The description of the toast.\n * @param variant - The variant of the toast.\n * @param autoDismiss - Whether to automatically dismiss the toast.\n */\nexport function toast({ title, description, variant, autoDismiss = true, action, actionLabel }: ToastProps) {\n const options = autoDismiss && !action ? { timeout: 3000 } : {};\n queue.add({ title, description, variant, autoDismiss, action, actionLabel }, options);\n}\n"],"mappings":"qZA0BA,IAAM,EAAQ,IAAI,EAA2B,CACzC,WAAW,EAAI,CACP,wBAAyB,SACzB,SAAS,wBAA0B,CAC/B,EAAU,CAAE,CAChB,CAAC,EAED,EAAG,CAEX,CACJ,CAAC,EAMD,SAAgB,GAAgB,CAC5B,OACI,EAAC,EAAD,CAAwB,QAAO,UAAU,mEACnC,UAAA,CAAE,WACA,EAAC,EAAD,CACI,MAAO,CAAE,mBAAoB,EAAM,GAAI,EAChC,QACP,UAAU,iEAEV,SAAA,EAAC,EAAD,CACI,UAAW,EACP,EAAc,CAAE,QAAS,EAAM,QAAQ,OAAQ,CAAC,EAChD,4DACJ,EAJJ,SAAA,CAMI,EAAC,MAAD,CAAK,UAAU,kCAAf,SAAA,CACI,EAAC,OAAD,CAAM,UAAU,WAAY,SAAA,EAAa,EAAM,QAAQ,OAAO,CAAQ,CAAA,EACtE,EAAC,MAAD,CAAK,UAAU,iBAAf,SAAA,CACI,EAAC,IAAD,CAAG,KAAK,QAAQ,UAAU,wBACrB,SAAA,EAAM,QAAQ,KAChB,CAAA,EACF,EAAM,QAAQ,aACX,EAAC,IAAD,CAAG,KAAK,cAAc,UAAU,UAC3B,SAAA,EAAM,QAAQ,WAChB,CAAA,CAEN,IACJ,CAAC,EAAM,QAAQ,aACZ,EAAC,EAAD,CACI,KAAK,QACL,KAAK,OACL,QAAQ,UACR,UAAU,gDAJd,SAAA,CAMI,EAAC,EAAD,CAAS,UAAU,QAAU,CAAA,EAC7B,EAAC,OAAD,CAAM,UAAU,UAAU,SAAA,OAAW,CAAA,CACjC,GAEX,CACJ,CAAA,EAAA,EAAM,QAAQ,QACX,EAAC,MAAD,CAAK,UAAU,qCACX,SAAA,EAAC,EAAD,CACI,KAAK,QACL,YAAe,CACX,EAAM,QAAQ,SAAS,CAC3B,EACA,QAAQ,UACR,UAAU,WAET,SAAA,EAAM,QAAQ,aAAe,QAC1B,CAAA,CACP,CAAA,CAEK,GACX,CAAA,CAEF,CAAA,CAEzB,CAOA,SAAS,EAAa,EAAgC,CAClD,OAAQ,EAAR,CACI,IAAK,cACD,OAAO,EAAC,EAAD,CAAU,CAAA,EACrB,IAAK,UACD,OAAO,EAAC,EAAD,CAAU,CAAA,EACrB,IAAK,UACD,OAAO,EAAC,EAAD,CAAS,CAAA,EACpB,QACI,OAAO,EAAC,EAAD,CAAS,CAAA,CACxB,CACJ,CASA,SAAgB,EAAM,CAAE,QAAO,cAAa,UAAS,cAAc,GAAM,SAAQ,eAA2B,CACxG,IAAM,EAAU,GAAe,CAAC,EAAS,CAAE,QAAS,GAAK,EAAI,CAAC,EAC9D,EAAM,IAAI,CAAE,QAAO,cAAa,UAAS,cAAa,SAAQ,aAAY,EAAG,CAAO,CACxF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger } from 'react-aria-components';
|
|
2
|
-
declare function TooltipTrigger({ delay, closeDelay, ...props }: React.ComponentProps<typeof AriaTooltipTrigger>): import("react
|
|
3
|
-
declare function Tooltip({ className, offset, ...props }: React.ComponentProps<typeof AriaTooltip>): import("react
|
|
2
|
+
declare function TooltipTrigger({ delay, closeDelay, ...props }: React.ComponentProps<typeof AriaTooltipTrigger>): import("react").JSX.Element;
|
|
3
|
+
declare function Tooltip({ className, offset, ...props }: React.ComponentProps<typeof AriaTooltip>): import("react").JSX.Element;
|
|
4
4
|
export { Tooltip, TooltipTrigger };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
2
|
-
//# sourceMappingURL=tooltip.js.map
|
|
1
|
+
import{classNames as e}from"../utilities/theme.js";import{jsx as t}from"react/jsx-runtime";import{Tooltip as n,TooltipTrigger as r,composeRenderProps as i}from"react-aria-components";function a({delay:e=0,closeDelay:n=0,...i}){return t(r,{delay:e,closeDelay:n,...i})}function o({className:r,offset:a=4,...o}){return t(n,{offset:a,className:i(r,t=>e(`z-50 border bg-surface-primary text-text-primary outline-none max-w-lg rounded-md`,`data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95`,`data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95`,`data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2`,`px-3 py-1.5 body-sm`,t)),...o})}export{o as Tooltip,a as TooltipTrigger};
|
|
2
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sources":["../../lib/components/tooltip.tsx"],"sourcesContent":["import {\n Tooltip as AriaTooltip,\n TooltipTrigger as AriaTooltipTrigger,\n composeRenderProps,\n} from 'react-aria-components';\n\nimport { classNames } from '../utilities/theme';\n\nfunction TooltipTrigger({ delay = 0, closeDelay = 0, ...props }: React.ComponentProps<typeof AriaTooltipTrigger>) {\n return <AriaTooltipTrigger delay={delay} closeDelay={closeDelay} {...props} />;\n}\n\nfunction Tooltip({ className, offset = 4, ...props }: React.ComponentProps<typeof AriaTooltip>) {\n return (\n <AriaTooltip\n offset={offset}\n className={composeRenderProps(className, className =>\n classNames(\n 'z-50 border bg-surface-primary text-text-primary outline-none max-w-lg rounded-md',\n /* Entering */\n 'data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95',\n // /* Exiting */\n 'data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95',\n /* Placement */\n 'data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2',\n 'px-3 py-1.5 body-sm',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport { Tooltip, TooltipTrigger };\n"],"
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":[],"sources":["../../lib/components/tooltip.tsx"],"sourcesContent":["import {\n Tooltip as AriaTooltip,\n TooltipTrigger as AriaTooltipTrigger,\n composeRenderProps,\n} from 'react-aria-components';\n\nimport { classNames } from '../utilities/theme';\n\nfunction TooltipTrigger({ delay = 0, closeDelay = 0, ...props }: React.ComponentProps<typeof AriaTooltipTrigger>) {\n return <AriaTooltipTrigger delay={delay} closeDelay={closeDelay} {...props} />;\n}\n\nfunction Tooltip({ className, offset = 4, ...props }: React.ComponentProps<typeof AriaTooltip>) {\n return (\n <AriaTooltip\n offset={offset}\n className={composeRenderProps(className, className =>\n classNames(\n 'z-50 border bg-surface-primary text-text-primary outline-none max-w-lg rounded-md',\n /* Entering */\n 'data-[entering]:animate-in data-[entering]:fade-in-0 data-[entering]:zoom-in-95',\n // /* Exiting */\n 'data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95',\n /* Placement */\n 'data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2',\n 'px-3 py-1.5 body-sm',\n className\n )\n )}\n {...props}\n />\n );\n}\n\nexport { Tooltip, TooltipTrigger };\n"],"mappings":"uLAQA,SAAS,EAAe,CAAE,QAAQ,EAAG,aAAa,EAAG,GAAG,GAA0D,CAC9G,OAAO,EAAC,EAAD,CAA2B,QAAmB,aAAY,GAAI,CAAQ,CAAA,CACjF,CAEA,SAAS,EAAQ,CAAE,YAAW,SAAS,EAAG,GAAG,GAAmD,CAC5F,OACI,EAAC,EAAD,CACY,SACR,UAAW,EAAmB,EAAW,GACrC,EACI,oFAEA,kFAEA,kFAEA,kLACA,sBACA,CACJ,CACJ,EACA,GAAI,CACP,CAAA,CAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{formatDate as e}from"./utilities/date.js";import{Duration as t}from"./utilities/duration.js";import{formatDays as n,formatFilesize as r,formatNumber as i}from"./utilities/numbers.js";import{pluralizeTimes as a}from"./utilities/string.js";import{classNames as o}from"./utilities/theme.js";import{ALL_OS as s,useProjectName as c,useResourceFormatter as l}from"./utilities/resources.js";import{At as u,Et as d,G as f,H as p,I as m,It as h,J as g,K as _,Lt as v,M as y,P as b,R as x,Rt as S,W as ee,_ as te,at as C,c as w,d as T,l as E,n as D,nt as ne,st as re}from"./icons.js";import{ALL_LICENSE_TYPES as ie,getSubscriptionStartTriggerLabel as O}from"./components/select-options.js";import{CountryName as k}from"./utilities/countries.js";import{useCtxClient as ae}from"./utilities/ctx-client.js";import{Loader as A}from"./components/loader.js";import{Button as j}from"./components/button.js";import{Checkbox as oe}from"./components/checkbox.js";import{Popover as se,PopoverTrigger as ce}from"./components/popover.js";import{SelectTrigger as le}from"./components/select.js";import{EasyMenu as M,Menu as N,MenuHeader as ue,MenuItem as P,MenuPopover as F,MenuTrigger as I}from"./components/menu.js";import{MultiSelect as L}from"./components/multi-select.js";import{NumberField as R}from"./components/numberfield.js";import{TextField as de}from"./components/textfield.js";import{DatePicker as z}from"./components/date-picker.js";import{useIsMobile as B}from"./utilities/use-mobile.js";import{Badge as V}from"./components/badge.js";import{SearchField as H}from"./components/searchfield.js";import{Table as U,TableBody as fe,TableCell as pe,TableHead as me,TableHeader as he,TableRow as ge}from"./components/table.js";import{Tooltip as _e,TooltipTrigger as ve}from"./components/tooltip.js";import{ControlledDialogProvider as ye,DialogBody as be,DialogFooter as xe,DialogHeader as Se,DialogTitle as Ce,useControlledDialog as W}from"./components/dialog.js";import{ProgressBar as we}from"./components/progress-bar.js";import{Tag as Te,TagGroup as Ee}from"./components/tag-group.js";import{MultipleIdSearchInput as De}from"./components/id-search.js";import{merge as Oe}from"lodash-es";import{Fragment as ke,createContext as Ae,useContext as je,useEffect as G,useMemo as Me,useRef as Ne,useState as K}from"react";import{Fragment as q,jsx as J,jsxs as Y}from"react/jsx-runtime";import{Pressable as Pe}from"react-aria-components";import{getLocalTimeZone as Fe,parseAbsolute as X}from"@internationalized/date";import{DndContext as Ie,DragOverlay as Le,KeyboardSensor as Re,PointerSensor as ze,closestCenter as Be,useSensor as Ve,useSensors as He}from"@dnd-kit/core";import{SortableContext as Ue,arrayMove as We,sortableKeyboardCoordinates as Ge,useSortable as Ke,verticalListSortingStrategy as qe}from"@dnd-kit/sortable";import{CSS as Je}from"@dnd-kit/utilities";import{useInfiniteQuery as Ye,useQuery as Xe}from"@tanstack/react-query";import{createColumnHelper as Ze,flexRender as Qe,getCoreRowModel as $e,useReactTable as et}from"@tanstack/react-table";import{useLocalStorage as tt}from"@uidotdev/usehooks";function nt(e){return e?e.desc?`-${e.id}`:`+${e.id}`:`-createdAt`}var rt=Ze(),it=[rt.accessor(`checkbox`,{header:({table:e})=>J(oe,{isIndeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllPageRowsSelected(),isSelected:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected(),onChange:()=>e.toggleAllPageRowsSelected(),"aria-label":`Select all`,size:`sm`}),cell:({row:e})=>J(oe,{isSelected:e.getIsSelected(),onChange:()=>e.toggleSelected(),"aria-label":`Select row`,size:`sm`}),enableSorting:!1,enableHiding:!1})],Z=`TableActions`;function at(e){return e.length===0?[]:[rt.accessor(Z,{header:`Actions`,id:Z,enableHiding:!1,cell:({row:t})=>J(Dt,{label:J(re,{className:`text-icon-primary`}),data:t.original,items:e}),enableSorting:!1})]}function ot(){return Ze()}function st({path:e,resourceName:t,pathParameters:n,queryParameters:r,columns:i,filterConfig:a,columnsToHideByDefault:o={},allowSelection:s=!1,allowToolbar:c=!0,initialFilters:l=[],previewFilters:u,tableActions:d,Card:f,onRowNavigate:p,disableTableView:m,hideViewToggle:h,include:g}){let[_,v]=K({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:y,pagination:b}=_,[x,S]=K(``),[ee,te]=K({}),[C,w]=K(l),T=Me(()=>C.filter(e=>e.active!==!1).map(e=>{if(e.type===`derived-select`){let t=a[e.property];return t?.type===`derived-select`?t.toApiQuery(String(e.value??``)):{}}let t=e.value instanceof Set?Array.from(e.value):e.value;return e.needOperator===!1?{[e.property]:Array.isArray(t)?t.join(`,`):t}:e.operator===`between`&&Array.isArray(t)&&t.length===2?{[e.property]:{gte:t[0],lte:t[1]}}:Array.isArray(t)?{[e.property]:{[e.operator]:t.join(`,`)}}:{[e.property]:{[e.operator]:t}}}).reduce((e,t)=>Oe(e,t),{}),[C,a]),E=g?.length?g.join(`,`):void 0,D={...r,...T,limit:b.pageSize,sort:nt(y[0]),search:x,...E?{include:E}:{}},ne=ae(),re=[`get`,e,{...D,page:b.pageIndex+1},`table`],ie=[`get`,e,D,`card`],O=`${e}_ctx`,[k,A]=tt(`${O}_column_order_preference`,[]),[j,oe]=tt(`${O}_column_visibility_preference`,{id:!1,...o}),[se,ce]=tt(`${O}_view_mode_preference`,m?`card`:`table`),le=B(),M=m||le&&f?`card`:se,N=e=>{v(t=>({...t,...e}))};async function ue(t){let i=await ne.GET(e,{params:{query:{...r,page:t,limit:b.pageSize,sort:D.sort,search:D.search,...E?{include:E}:{},...T},path:n}});return{data:i.data??[],total:Number.parseInt(i.response.headers.get(`Pagination-Count`)||`0`),nextPage:t+1}}let P=Xe({queryKey:re,enabled:M===`table`,queryFn:()=>ue(b.pageIndex+1),placeholderData:e=>e}),F=Ye({queryKey:ie,enabled:M===`card`,initialPageParam:1,queryFn:({pageParam:e})=>ue(e),getNextPageParam:(e,t)=>t.flatMap(e=>e.data).length<e.total?e.nextPage:void 0}),I=Me(()=>M===`table`?P.data?.data??[]:F.data?.pages.flatMap(e=>e.data)??[],[M,P.data,F.data]),L=Me(()=>M===`table`?P.data?.total??0:F.data?.pages[0]?.total??0,[M,P.data,F.data]),R=M===`table`?P:{...F,data:{data:I,total:L},isLoading:F.isLoading,isFetching:F.isFetching,isError:F.isError,error:F.error,refetch:F.refetch},de=d.filter(wt),z=[...s?it:[],...i,...at(de??[])];function V(e){return typeof e==`function`}function H(e,t){return V(e)?e(t):e}let U=et({data:I,columns:z,getCoreRowModel:$e(),rowCount:L,manualPagination:!0,onPaginationChange:e=>{N({pagination:H(e,b)})},manualSorting:!0,onSortingChange:e=>{te({}),N({sorting:[...H(e,y)]})},manualFiltering:!0,onColumnVisibilityChange:e=>{oe(H(e,j))},onRowSelectionChange:e=>{te(H(e,ee))},onColumnOrderChange:e=>{A(H(e,k))},state:{sorting:y,columnVisibility:j,pagination:b,rowSelection:ee,columnOrder:k},meta:{refetch:R.refetch}});return G(()=>{let e=U.getAllFlatColumns().map(e=>e.id),t=e.filter(e=>e!==`checkbox`&&e!==Z);A(n=>{let r=n.filter(e=>t.includes(e)),i=t.filter(e=>!n.includes(e)),a=r.length>0?[...r,...i]:t;return[...e.includes(`checkbox`)?[`checkbox`]:[],...a,...e.includes(Z)?[Z]:[]]})},[]),{tableState:_,updateTableState:N,query:R,setSearchQuery:S,searchQuery:x,tanTable:U,mergedFilters:T,filters:C,setFilters:w,filterConfig:a,tableActions:d,pathParameters:n,queryParameters:r,viewMode:M,setViewMode:ce,Card:f,allowSelection:s,allowToolbar:c,previewFilters:u,infiniteQuery:F,disableTableView:m,hideViewToggle:h,onRowNavigate:p,resourceName:t}}var ct=Ae(null);function Q(){let e=je(ct);if(!e)throw Error(`DataTable should be used within DataTableProvider.`);return e}function lt({children:e,...t}){return J(ct.Provider,{value:t,children:e})}function ut(){let{query:e,resourceName:t,mergedFilters:n,searchQuery:r}=Q(),i=l();if(e.isFetching)return null;if(e.isError)return Y(`span`,{className:`flex gap-3 items-center`,children:[J(p,{className:`text-icon-primary`}),J(`span`,{children:e.error?.message})]});if(e.data?.data?.length===0){let e=t&&a(i(t),2).toLowerCase(),o=Object.keys(n).length>0||r.length>0;return Y(`div`,{className:`text-center flex flex-col gap-2`,children:[J(`p`,{className:`font-semibold text-text-primary`,children:e?`No ${e} found.`:`No results found.`}),o&&J(`p`,{className:`text-text-secondary`,children:`Adjust your filter or search request.`})]})}return J(q,{children:`Unknown error. Please contact customer support.`})}function dt({cardGridClassName:e}){let{query:t,tanTable:n,viewMode:r,tableActions:i,Card:a}=Q(),o=i.filter(wt),s=r===`card`&&!!a;return t.isLoading?J(`div`,{className:`body-sm flex items-center justify-center min-h-32`,children:J(A,{})}):n.getRowModel().rows.length===0?J(`div`,{className:`body-sm flex items-center justify-center min-h-32 text-muted`,children:J(ut,{})}):s?J(pt,{Card:a,actions:o,className:e}):J(St,{className:`w-full`})}function ft({className:e,cardGridClassName:t,...n}){let{viewMode:r,Card:i,allowToolbar:a}=Q(),s=r===`card`&&!!i;return J(q,{children:Y(ye,{children:[a&&J(_t,{}),Y(`section`,{...n,className:o(`z-20 flex flex-col`,s?``:`border rounded-lg`,e),children:[J(`div`,{className:`w-full overflow-auto relative rounded-t-lg [scrollbar-width:none]`,tabIndex:0,children:J(dt,{cardGridClassName:t})}),!s&&Y(`div`,{className:`flex w-full justify-between border-t gap-icon py-2 px-icon bg-surface-secondary rounded-b-lg overflow-x-auto`,children:[Y(`div`,{className:`flex gap-icon`,children:[J(mt,{}),J(gt,{})]}),J(ht,{})]})]})]})})}function pt({Card:e,actions:t,className:n,...r}){let{tanTable:i,allowSelection:a}=Q(),{infiniteQuery:s}=Q(),c=Ne(null);return G(()=>{let e=c.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0].isIntersecting&&s.hasNextPage&&!s.isFetchingNextPage&&s.fetchNextPage()},{threshold:.1});return t.observe(e),()=>t.disconnect()},[s.hasNextPage,s.isFetchingNextPage]),Y(`div`,{...r,className:o(n,`grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input`),children:[i.getRowModel().rows.map((n,r)=>{let i={isSelected:n.getIsSelected(),onToggle:()=>n.toggleSelected(),allowSelection:a};return J(ke,{children:e(n.original,t,i,r)},n.id)}),J(`div`,{ref:c,className:`col-span-full h-4 flex items-center justify-center`,children:s.isFetchingNextPage&&J(A,{})})]})}function mt(){if(c()===`customer-portal`)return null;let{tanTable:e}=Q(),[t,n]=K(null),r=l(),i=He(Ve(ze),Ve(Re,{coordinateGetter:Ge}));return J(Ie,{sensors:i,collisionDetection:Be,onDragStart:e=>{let{active:t}=e;n(t.id.toString())},onDragEnd:t=>{let{active:r,over:i}=t;if(i&&r.id!==i.id){let t=e.getState().columnOrder,n=t.indexOf(r.id.toString()),a=t.indexOf(i.id.toString());e.setColumnOrder([...We(t,n,a)])}n(null)},children:Y(Ue,{items:e.getState().columnOrder,strategy:qe,children:[Y(M,{label:Y(q,{children:[J(T,{className:`inline align-bottom me-1 text-icon-primary`}),`Columns`]}),selectionMode:`multiple`,size:`sm`,items:e.getAllFlatColumns(),selectedKeys:e.getVisibleFlatColumns().map(e=>e.id),children:[J(P,{onAction:()=>e.toggleAllColumnsVisible(),className:`italic`,children:`(select all)`}),e.getState().columnOrder.map(t=>{let n=e.getAllFlatColumns().find(e=>e.id===t);return!n||n.id===`checkbox`||n.id===Z?null:J(a,{column:n},n.id)})]}),J(Le,{children:t?J(`div`,{className:`opacity-70 border-2 border-primary`,children:r(t)}):null})]})});function a({column:e}){let{attributes:t,listeners:n,setNodeRef:r,transform:i,transition:a}=Ke({id:e.id}),o={transform:Je.Transform.toString(i),transition:a,zIndex:`999`};return Y(P,{ref:r,style:o,...t,id:e.id,onAction:()=>e.toggleVisibility(),isDisabled:!e.getCanHide(),className:`flex items-center`,children:[J(x,{...n,className:`size-icon cursor-grab text-icon-primary`}),yt(e),e.getIsSorted()&&J(vt,{className:`size-icon`,direction:e.getIsSorted()})]})}}function ht(){let{tanTable:e}=Q(),t=e.getRowCount();return Y(`div`,{className:`flex items-center gap-2`,children:[J(`span`,{className:`whitespace-nowrap body-sm text-muted`,children:`${e.getState().pagination.pageIndex*e.getState().pagination.pageSize+1} - ${Math.min((e.getState().pagination.pageIndex+1)*e.getState().pagination.pageSize,t)} of ${t?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&Y(q,{children:[J(j,{"aria-label":`First page`,onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:`neutral`,size:`icon-sm`,children:J(m,{})}),J(j,{"aria-label":`Previous page`,onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:`neutral`,size:`icon-sm`,children:J(_,{})}),J(j,{"aria-label":`Next page`,onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:`neutral`,size:`icon-sm`,children:J(u,{})}),J(j,{"aria-label":`Last page`,onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:`neutral`,size:`icon-sm`,children:J(ee,{})})]})]})}function gt(){if(c()===`customer-portal`)return null;let{tanTable:e}=Q();return J(M,{label:e.getState().pagination.pageSize.toString(),selectionMode:`single`,size:`sm`,selectedKeys:[e.getState().pagination.pageSize.toString()],items:[10,20,30,40,50].map(e=>({id:e.toString(),value:e})),children:t=>J(P,{onAction:()=>e.setPageSize(t.value),children:t.value})})}function _t(){let{query:e,tanTable:t,searchQuery:n,setSearchQuery:r,tableActions:i,viewMode:a,setViewMode:s,Card:c,previewFilters:l,disableTableView:u,hideViewToggle:p}=Q(),m=t.getSelectedRowModel().rows.length>0,h=B(),g=i.filter(e=>e.resourceType!==`single`).filter(e=>e.resourceType===`multiple`===m);return Y(`section`,{className:`flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1`,children:[Y(`div`,{className:o(`flex gap-icon max-md:min-w-0 max-md:flex-1`),children:[J(j,{"aria-label":`Refresh`,isPending:e.isFetching,onClick:()=>e.refetch(),variant:`neutral`,size:`icon`,className:o(`max-md:shrink-0`),children:J(d,{})}),J(H,{value:n,onChange:r,className:o(`max-md:min-w-0 max-md:flex-1`)}),J(zt,{previewFilters:l,className:o(`max-md:shrink-0`)})]}),!h&&Y(`div`,{className:`flex gap-icon`,children:[J(Et,{items:g,isFetching:e.isFetching}),c&&!u&&!p&&Y(`div`,{className:`flex gap-1 bg-surface-primary rounded-md overflow-hidden`,children:[J(j,{variant:a===`table`?`primary`:`neutral`,size:`icon`,onPress:()=>s(`table`),"aria-label":`Table view`,className:`border-none`,children:J(ne,{})}),J(j,{variant:a===`card`?`primary`:`neutral`,size:`icon`,onPress:()=>s(`card`),"aria-label":`Card view`,className:`border-none`,children:J(f,{})})]})]}),h&&g.length>0&&J(`div`,{className:`fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-surface-primary p-icon`,children:J(Et,{items:g,isFetching:e.isFetching,buttonClassName:`flex-1 justify-center`})})]})}function vt({direction:e,...t}){return J(e===`asc`?h:e===`desc`?v:S,{className:`size-3.5`,...t})}function yt(e){let t=l(),n=e.columnDef.header;return typeof n==`string`?n:t(e.id)}function bt(a){let o=a.column.columnDef.meta?.displayType,c=a.getValue();if(c==null)return null;switch(o){case`date`:return J(`span`,{className:`tabular-nums`,children:e(c)});case`number`:return J(`span`,{className:`block text-right tabular-nums`,children:i(c)});case`boolean`:return J(V,{variant:c?`success`:`destructive`,className:`capitalize`,children:String(c)});case`badge`:return J(V,{children:String(c)});case`tags`:return J(Ee,{items:(Array.isArray(c)?c:[String(c)]).map(e=>({id:e,name:e})),className:`!flex-nowrap`,children:e=>J(Te,{children:e.name})});case`progressBar`:let[a,o]=c;return J(we,{meterClassName:`w-16`,label:`${a}/${o}`,minValue:0,maxValue:o,value:a});case`country`:return J(k,{value:c});case`enum`:return J(`span`,{className:`uppercase w-full`,children:String(c)});case`fileSize`:return r(c);case`days`:return n(c);case`os`:return s[c]??c;case`licenseType`:return ie[c]??c;case`subscriptionInterval`:return t.formatISODuration(c);case`subscriptionStartTrigger`:return O(c);default:return String(c)}}function xt({header:e}){let t=e.column.columnDef.header;return typeof t==`string`||!t||typeof t==`function`&&typeof t(e.getContext())==`string`?yt(e.column):Qe(t,e.getContext())}function St({className:e}){let{tanTable:t,onRowNavigate:n}=Q(),r=(e,t,n=`z-50`)=>o(`text-left body-sm font-medium whitespace-nowrap`,e&&`sticky right-0 ${n} text-center justify-center`,t);return Y(U,{className:o(`table-auto border-0`,e),children:[J(he,{className:`sticky top-0 z-10 rounded-lg border-stroke-secondary!`,children:t.getHeaderGroups().map(e=>J(ge,{className:`border-stroke-secondary!`,children:e.headers.map(e=>Y(me,{scope:`col`,colSpan:e.colSpan,className:r(e.id===Z,`bg-surface-secondary`),children:[!e.column.getCanSort()&&!e.isPlaceholder&&J(`div`,{className:o(`w-full flex items-center gap-1 text-xs uppercase font-semibold text-text-secondary`,e.id===Z?`justify-center`:`justify-start`),children:J(xt,{header:e})}),e.column.getCanSort()&&Y(j,{variant:`ghost`,size:`none`,className:o(`w-full p-1 rounded-md uppercase text-text-secondary text-xs font-semibold`,e.id===Z?`justify-center`:`justify-start`,e.column.getIsSorted()?`text-primary`:``),onPress:e.column.getToggleSortingHandler(),children:[J(`span`,{children:J(xt,{header:e})}),e.column.getIsSorted()&&J(vt,{direction:e.column.getIsSorted()})]})]},e.id))},e.id))}),J(fe,{children:t.getRowModel().rows.map(e=>J(ge,{className:o(`group border-stroke-secondary! bg-surface-primary hover:not-data-[selected=true]:bg-surface-secondary data-[selected=true]:bg-surface-tertiary`,n&&`cursor-pointer focus-visible:outline focus-visible:outline-ring`),"data-selected":e.getIsSelected(),...n&&{role:`link`,tabIndex:0,onClick:t=>{t.target.closest(`a, button, input, select, textarea, [role="button"]`)||n(e.original)},onKeyDown:t=>{t.key===`Enter`&&n(e.original)}},children:e.getVisibleCells().map(e=>{let t=e.column.id===Z,n=e.column.columnDef.meta?.displayType?bt(e):Qe(e.column.columnDef.cell,e.getContext());return J(pe,{className:o(r(t,t?`bg-surface-primary group-hover:not-group-data-[selected=true]:bg-surface-secondary group-data-[selected=true]:bg-surface-tertiary`:``,`z-1`),t&&`flex justify-center items-center`),children:n},e.id)})},e.id))})]})}function Ct(e){return e.resourceType===`none`}function wt(e){return e.resourceType===`single`}function Tt(e){return e.resourceType===`multiple`}function Et({items:e,isFetching:t,buttonClassName:n}){let{openDialog:r,closeDialog:i}=W(),{tanTable:a,mergedFilters:s}=Q();function c(e,t){return e.isDisabled?Ct(e)?e.isDisabled():Tt(e)?e.isDisabled(t):!1:!1}let l=a.getSelectedRowModel().rows.map(e=>e.original);return J(q,{children:e.map((e,a)=>{let u=e.icon,d=c(e,l)||t;return Y(j,{"aria-label":e.label,type:`button`,isDisabled:d,className:o(`animate-in fade-in slide-in-from-right-15 duration-300 transition-transform`,n),onPress:t=>{let n={event:t,openDialog:r,closeDialog:i,activeFilters:s};Ct(e)?e.onPress(n):Tt(e)&&e.onPress({...n,data:l})},variant:e.variant??`neutral`,children:[u&&J(u,{"aria-hidden":!0}),J(`span`,{children:e.label})]},`${e.label}-${a}`)})})}function Dt({label:e,items:t,data:n}){let{openDialog:r,closeDialog:i}=W(),{mergedFilters:a}=Q();return t.length<5?J(`div`,{className:`flex items-center`,children:t.map((e,t)=>{let o=e.icon,s=typeof e.label==`function`?e.label(n):e.label;return Y(ve,{children:[J(j,{"aria-label":typeof s==`string`?s:void 0,isDisabled:e.isDisabled?.(n)??!1,variant:`ghost`,size:`icon`,onPress:()=>{let t={openDialog:r,closeDialog:i};e.onPress({...t,data:n,activeFilters:a})},children:J(o,{className:`size-icon`})}),J(_e,{children:s})]},`${t}-${typeof s==`string`?s:``}`)})}):J(M,{withChevron:!1,"aria-label":`Actions`,label:e,size:`icon`,children:t.map((e,t)=>{let o=e.icon,s=typeof e.label==`function`?e.label(n):e.label;return Y(P,{id:typeof s==`string`?s:void 0,isDisabled:e.isDisabled?.(n)??!1,onAction:()=>{let t={openDialog:r,closeDialog:i};wt(e)&&e.onPress({...t,data:n,activeFilters:a})},children:[J(o,{className:`size-icon`}),s]},`${t}-${typeof s==`string`?s:``}`)})})}var Ot=[`eq`,`ne`,`cn`,`nc`,`sw`,`ew`,`in`,`nin`,`gt`,`gte`,`lt`,`lte`,`between`],kt={eq:`equal to`,ne:`not equal to`,cn:`contains`,nc:`does not contain`,sw:`starts with`,ew:`ends with`,in:`includes`,nin:`does not include`,gt:`greater than`,gte:`greater than or equal to`,lt:`less than`,lte:`less than or equal to`,between:`between`},At={eq:`=`,ne:`≠`,cn:`contains`,nc:`!contains`,sw:`starts with`,ew:`ends with`,in:`in`,nin:`not in`,gt:`>`,gte:`≥`,lt:`<`,lte:`≤`,between:`↔`};function $(e,t){let n=t.type,r=`${e}-${Date.now()}`,i=n===`bool`||n===`derived-select`?!1:t.needOperator??!0,a=i?jt[n][0]:`eq`,o={id:r,property:e,operator:a,needOperator:i};switch(n){case`bool`:return{...o,type:n,value:!0};case`derived-select`:return{...o,type:n,value:t.options[0]?.id??``};case`string`:return{...o,type:n,value:``};case`date`:return{...o,type:n,value:a===`between`?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case`id`:return{...o,type:n,value:``};case`id-search`:return{...o,type:n,value:[]};case`enum`:return{...o,type:n,value:new Set};case`number`:return{...o,type:n,value:0}}}var jt={bool:[`eq`],"derived-select":[`eq`],enum:[`in`,`nin`],id:[`in`,`nin`],"id-search":[`in`,`nin`],string:[`eq`,`ne`,`cn`,`nc`,`sw`,`ew`,`in`,`nin`],date:[`between`,`lt`,`gt`],number:[`eq`,`ne`,`gt`,`gte`,`lt`,`lte`]};function Mt(e,t){let n=t.value===void 0?e.value:t.value,r=t.operator??e.operator;if(e.type===`date`&&t.operator!==void 0){if(r===`between`&&!Array.isArray(n)){let e=typeof n==`string`?n:new Date().toISOString();n=[e,e]}else r!==`between`&&Array.isArray(n)&&(n=n[0]??new Date().toISOString())}return n}function Nt(){let{setFilters:e,filterConfig:t}=Q();return{updateFilter:(n,r)=>{e(e=>{let i=e.find(e=>e.property===n)??$(n,t[n]),a={...i,...r,value:Mt(i,r),active:!0};return e.some(e=>e.id===i.id)?e.map(e=>e.id===i.id?a:e):[...e,a]})},removeFilter:n=>{e(e=>{let r=e.find(e=>e.id===n);return r?r.isPreview?e.map(e=>e.id===n?{...$(e.property,t[e.property]),active:!1,isPreview:!0}:e):e.filter(e=>e.id!==n):e})},clearAllFilters:()=>{e(e=>e.filter(e=>e.isPreview).map(e=>({...$(e.property,t[e.property]),active:!1,isPreview:!0})))}}}function Pt(t,n){switch(t.type){case`string`:case`id`:return t.value??``;case`number`:return t.value?.toString()??``;case`bool`:return t.value?`true`:`false`;case`derived-select`:{let e=n[t.property];if(!e||e.type!==`derived-select`)return t.value??``;let r=e.options.find(e=>e.id===t.value);return typeof r?.label==`string`?r.label:t.value??``}case`date`:if(Array.isArray(t.value)){let[n,r]=t.value;return`${e(n,{dateStyle:`short`})??``} – ${e(r,{dateStyle:`short`})??``}`}return t.value?e(t.value,{dateStyle:`short`})??``:``;case`enum`:return t.value&&t.value.size>0?`${t.value.size} selected`:``;case`id-search`:return t.value&&t.value.length>0?t.value.length===1?`1 item`:`${t.value.length} items`:``}}function Ft({filter:e,filterConfig:t,onChange:n}){if(e.type===`string`||e.type===`id`)return J(de,{autoFocus:!0,value:e.value??``,onChange:n,"aria-label":`Filter value`});if(e.type===`number`)return J(R,{autoFocus:!0,value:e.value,onChange:n,"aria-label":`Filter value`});if(e.type===`date`){if(e.operator===`between`){let[t,r]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],i=X(t,Fe()),a=X(r,Fe());return Y(`div`,{className:`flex flex-col gap-icon`,children:[J(z,{autoFocus:!0,hideTimeZone:!0,label:`From`,value:i,onChange:e=>n([e?e.toAbsoluteString():t,r])}),J(z,{hideTimeZone:!0,label:`To`,value:a,onChange:e=>n([t,e?e.toAbsoluteString():r])})]})}let t=e.value&&!Array.isArray(e.value)?X(e.value,Fe()):null;return J(z,{autoFocus:!0,hideTimeZone:!0,value:t,onChange:e=>n(e?e.toAbsoluteString():new Date().toISOString()),"aria-label":`Filter date`})}if(e.type===`enum`){let r=t[e.property];return r.type===`enum`?J(L,{autoFocus:!0,items:r.options,value:e.value??new Set,onChange:n,"aria-label":`Filter value`}):null}if(e.type===`id-search`){let r=t[e.property];if(r.type!==`id-search`)return null;let i=r.defaultParams;return J(De,{autoFocus:!0,path:r.path,accessor:r.accessor,defaultParams:i,value:e.value??[],onChange:n,"aria-label":`Filter value`})}return null}function It({filter:e,filterConfig:t,resourceFormatter:n,onRemove:r,onUpdate:i,isOpen:a,onOpenChange:o}){let s=e.needOperator===!1?[`eq`]:jt[e.type],l=Pt(e,t),u=c(),d=B(),f=e.type===`bool`||e.type===`derived-select`,p=d?Y(`div`,{className:`flex flex-col gap-1`,children:[J(`span`,{className:`body-sm text-muted`,children:n(e.property)}),J(le,{type:`button`,className:`w-full`,"aria-label":n(e.property),children:l})]}):Y(j,{type:`button`,variant:e.active===!1?`neutral`:`primary_neutral`,className:`animate-in slide-in-from-left-10 fade-in flex justify-between gap-2`,children:[J(b,{}),f?J(`span`,{className:`font-medium`,children:l}):Y(q,{children:[J(`span`,{className:`font-medium`,children:n(e.property)}),u!==`customer-portal`&&J(`span`,{children:At[e.operator]}),u!==`customer-portal`&&l&&J(`span`,{children:l})]}),e.active!==!1&&J(Pe,{onPress:()=>r(),children:J(`span`,{className:`bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center`,children:J(E,{className:`size-2.5 text-surface-primary`})})})]});if(f){let r,s;if(e.type===`bool`)r=[{id:`true`,label:`True`},{id:`false`,label:`False`}],s=e.value?`true`:`false`;else{let n=t[e.property];r=n?.type===`derived-select`?n.options:[],s=e.value??``}return Y(I,{isOpen:a,onOpenChange:o,children:[J(`div`,{className:`relative`,children:p}),Y(F,{className:`min-w-48`,children:[J(ue,{inset:!0,separator:!1,children:n(e.property)}),J(N,{selectionMode:`single`,disallowEmptySelection:!0,selectedKeys:new Set([s]),onSelectionChange:t=>{if(t===`all`)return;let n=t.values().next().value;n!=null&&i({value:e.type===`bool`?String(n)===`true`:String(n)})},"aria-label":`Filter value`,children:r.map(e=>J(P,{id:e.id,children:e.label},e.id))})]})]})}return Y(ce,{isOpen:a,onOpenChange:o,children:[J(`div`,{className:`relative`,children:p}),J(se,{className:`p-icon min-w-48`,children:Y(`div`,{className:`flex flex-col gap-icon`,children:[s.length>1&&J(M,{label:kt[e.operator],variant:`neutral`,"aria-label":`Change operator`,children:s.map(e=>J(P,{onAction:()=>i({operator:e}),children:kt[e]},e))}),J(Ft,{filter:e,filterConfig:t,onChange:e=>i({value:e})}),J(j,{type:`button`,variant:`neutral`,className:`self-end`,onPress:r,"aria-label":`Remove ${n(e.property)} filter`,children:`Clear`})]})})]})}function Lt({onApply:e}){let{filters:t,filterConfig:n}=Q(),r=l(),{updateFilter:i,removeFilter:a,clearAllFilters:o}=Nt(),[s,c]=K(null);return Y(q,{children:[J(Se,{children:J(Ce,{children:`Filter`})}),J(be,{className:`flex flex-col gap-input`,children:Object.keys(n).map(e=>{let o=t.find(t=>t.property===e)??$(e,n[e]);return J(It,{filter:o,filterConfig:n,resourceFormatter:r,onRemove:()=>a(o.id),onUpdate:t=>i(e,t),isOpen:s===e,onOpenChange:t=>c(t?e:null)},e)})}),Y(xe,{children:[J(j,{variant:`neutral`,onPress:()=>{o(),c(null)},children:`Clear All`}),J(j,{variant:`primary`,onPress:e,children:`Apply`})]})]})}function Rt({className:e,hasClearableFilters:t,isDisabled:n,onClearAll:r,...i}){let{openDialog:a,closeDialog:s}=W();return J(`section`,{...i,className:o(`flex items-center`,e),children:Y(j,{variant:t?`primary_neutral`:`neutral`,isDisabled:n,"aria-label":`Filter`,onPress:()=>a(J(Lt,{onApply:s})),className:`min-w-0 flex-1`,children:[J(b,{}),`Filters`,t&&J(Pe,{onPress:r,children:J(`span`,{className:`animate-slide-in bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center`,children:J(E,{className:`size-2.5 text-surface-primary`})})})]})})}function zt({className:e,previewFilters:t,...n}){let{filters:r,query:i,setFilters:a,filterConfig:s}=Q(),c=B(),u=l(),d=Object.keys(s).length>0,f=Object.keys(s).filter(e=>!r.some(t=>t.property===e)).sort(),[p,m]=K(null),h=Ne(!1);G(()=>{if(!h.current&&r.length===0){let e=[];t&&t.length>0&&e.push(...t.filter(e=>s[e]).map(e=>({...$(e,s[e]),active:!1,isPreview:!0}))),e.length>0&&a(e)}h.current=!0},[]);let{updateFilter:g,removeFilter:_,clearAllFilters:v}=Nt(),y=e=>{let t=$(e,s[e]);a([...r,t]),m(t.id)},x=r.some(e=>!e.isPreview||e.active!==!1),S=()=>{v(),m(null)};return c?d?J(Rt,{...n,className:e,hasClearableFilters:x,isDisabled:i.isPending,onClearAll:S}):null:Y(`section`,{...n,className:o(`flex flex-wrap gap-icon items-center`,e),children:[r.filter(e=>e.property in s).map(e=>J(It,{filter:e,filterConfig:s,resourceFormatter:u,onRemove:()=>_(e.id),onUpdate:t=>g(e.property,t),isOpen:p===e.id,onOpenChange:t=>m(t?e.id:null)},e.id)),f.length>0&&J(M,{label:J(b,{}),isDisabled:i.isPending,variant:`neutral`,"aria-label":`Add filter`,children:f.map(e=>{let t=Bt[s[e].type];return Y(P,{className:`!justify-between`,onAction:()=>y(e),children:[u(e),J(t,{})]},e)})}),x&&J(j,{variant:`ghost`,onPress:S,"aria-label":`Clear all filters`,className:`animate-in fade-in`,children:`Clear All`})]})}var Bt={"id-search":y,bool:w,"derived-select":w,date:te,enum:g,id:D,number:C,string:w};export{ct as a,Q as c,ft as i,st as l,zt as n,lt as o,Ot as r,ot as s,kt as t};
|
|
2
|
+
//# sourceMappingURL=data-table-filter.js.map
|