@customafk/lunas-ui 0.2.78 → 0.2.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/{analysis-panel-CQZ0hmfN.cjs → analysis-panel-Bg0lCfWv.cjs} +2 -2
  2. package/dist/{analysis-panel-CQZ0hmfN.cjs.map → analysis-panel-Bg0lCfWv.cjs.map} +1 -1
  3. package/dist/{analysis-panel-BqZmOU58.mjs → analysis-panel-Cop-l4lx.mjs} +2 -2
  4. package/dist/{analysis-panel-BqZmOU58.mjs.map → analysis-panel-Cop-l4lx.mjs.map} +1 -1
  5. package/dist/{badge-display-RP5VTE10.mjs → badge-display-B0BKsU9T.mjs} +2 -2
  6. package/dist/{badge-display-RP5VTE10.mjs.map → badge-display-B0BKsU9T.mjs.map} +1 -1
  7. package/dist/{badge-display-DmCKpGk9.cjs → badge-display-Dv2UTvzp.cjs} +2 -2
  8. package/dist/{badge-display-DmCKpGk9.cjs.map → badge-display-Dv2UTvzp.cjs.map} +1 -1
  9. package/dist/{boolean-display-B9qxrF5f.mjs → boolean-display-CMX5AupA.mjs} +2 -2
  10. package/dist/{boolean-display-B9qxrF5f.mjs.map → boolean-display-CMX5AupA.mjs.map} +1 -1
  11. package/dist/{boolean-display-BwB-l9k0.cjs → boolean-display-CPX7H39m.cjs} +2 -2
  12. package/dist/{boolean-display-BwB-l9k0.cjs.map → boolean-display-CPX7H39m.cjs.map} +1 -1
  13. package/dist/{currency-display-CEg_HRYv.mjs → currency-display-CanjOswc.mjs} +2 -2
  14. package/dist/{currency-display-CEg_HRYv.mjs.map → currency-display-CanjOswc.mjs.map} +1 -1
  15. package/dist/{currency-display-Buxc6Ph5.cjs → currency-display-xxK62yo4.cjs} +2 -2
  16. package/dist/{currency-display-Buxc6Ph5.cjs.map → currency-display-xxK62yo4.cjs.map} +1 -1
  17. package/dist/data-display/statistic.cjs +1 -1
  18. package/dist/data-display/statistic.cjs.map +1 -1
  19. package/dist/data-display/statistic.mjs +1 -1
  20. package/dist/data-display/statistic.mjs.map +1 -1
  21. package/dist/date-display-DMPhFq8v.cjs +2 -0
  22. package/dist/date-display-DMPhFq8v.cjs.map +1 -0
  23. package/dist/date-display-YE8NIIrl.mjs +2 -0
  24. package/dist/date-display-YE8NIIrl.mjs.map +1 -0
  25. package/dist/{description-display-CW0g3aJa.mjs → description-display-B4KoH6ql.mjs} +2 -2
  26. package/dist/{description-display-CW0g3aJa.mjs.map → description-display-B4KoH6ql.mjs.map} +1 -1
  27. package/dist/{description-display-BR8nXqc_.cjs → description-display-jmAaeMBD.cjs} +2 -2
  28. package/dist/{description-display-BR8nXqc_.cjs.map → description-display-jmAaeMBD.cjs.map} +1 -1
  29. package/dist/detail-dialog-BCM0iEXQ.cjs +2 -0
  30. package/dist/detail-dialog-BCM0iEXQ.cjs.map +1 -0
  31. package/dist/detail-dialog-DwfTi9Fl.mjs +2 -0
  32. package/dist/detail-dialog-DwfTi9Fl.mjs.map +1 -0
  33. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  34. package/dist/dialogs/detail-dialog/index.d.cts +1 -1
  35. package/dist/dialogs/detail-dialog/index.d.mts +1 -1
  36. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  37. package/dist/{email-display-DqKYq0iM.cjs → email-display-CzvqQMhG.cjs} +2 -2
  38. package/dist/{email-display-DqKYq0iM.cjs.map → email-display-CzvqQMhG.cjs.map} +1 -1
  39. package/dist/{email-display-BKcoWmPK.mjs → email-display-D_k7AUmp.mjs} +2 -2
  40. package/dist/{email-display-BKcoWmPK.mjs.map → email-display-D_k7AUmp.mjs.map} +1 -1
  41. package/dist/features/descriptions/index.cjs +1 -1
  42. package/dist/features/descriptions/index.cjs.map +1 -1
  43. package/dist/features/descriptions/index.mjs +1 -1
  44. package/dist/features/descriptions/index.mjs.map +1 -1
  45. package/dist/features/file-icons/index.cjs +2 -0
  46. package/dist/features/file-icons/index.cjs.map +1 -0
  47. package/dist/features/file-icons/index.d.cts +34 -0
  48. package/dist/features/file-icons/index.d.mts +34 -0
  49. package/dist/features/file-icons/index.mjs +2 -0
  50. package/dist/features/file-icons/index.mjs.map +1 -0
  51. package/dist/features/tables/index.cjs +1 -1
  52. package/dist/features/tables/index.mjs +1 -1
  53. package/dist/{filter-DqedvThM.cjs → filter-B5EnnL9I.cjs} +2 -2
  54. package/dist/{filter-DqedvThM.cjs.map → filter-B5EnnL9I.cjs.map} +1 -1
  55. package/dist/{filter-CWuRGTl4.mjs → filter-BCNjqiBx.mjs} +2 -2
  56. package/dist/{filter-CWuRGTl4.mjs.map → filter-BCNjqiBx.mjs.map} +1 -1
  57. package/dist/{index-BOifmu0V.d.cts → index-BXqx1kOJ.d.cts} +4 -2
  58. package/dist/{index-BOifmu0V.d.mts → index-BXqx1kOJ.d.mts} +4 -2
  59. package/dist/index.cjs +1 -1
  60. package/dist/index.d.cts +1 -1
  61. package/dist/index.d.mts +1 -1
  62. package/dist/index.mjs +1 -1
  63. package/dist/list-display-DPxZ_Jbf.cjs +2 -0
  64. package/dist/list-display-DPxZ_Jbf.cjs.map +1 -0
  65. package/dist/list-display-M43N3kle.mjs +2 -0
  66. package/dist/list-display-M43N3kle.mjs.map +1 -0
  67. package/dist/{name-display-B-FtblLL.cjs → name-display-BJ1wPUnS.cjs} +2 -2
  68. package/dist/{name-display-B-FtblLL.cjs.map → name-display-BJ1wPUnS.cjs.map} +1 -1
  69. package/dist/{name-display-CB9XAhXP.mjs → name-display-pWhLLS05.mjs} +2 -2
  70. package/dist/{name-display-CB9XAhXP.mjs.map → name-display-pWhLLS05.mjs.map} +1 -1
  71. package/dist/{permalink-I-INEarM.mjs → permalink-BaMvnKIz.mjs} +2 -2
  72. package/dist/{permalink-I-INEarM.mjs.map → permalink-BaMvnKIz.mjs.map} +1 -1
  73. package/dist/{permalink-CUIKG9VA.cjs → permalink-CMcI__V4.cjs} +2 -2
  74. package/dist/{permalink-CUIKG9VA.cjs.map → permalink-CMcI__V4.cjs.map} +1 -1
  75. package/dist/{phone-number-DJvfJg1b.cjs → phone-number-F9I9sNLK.cjs} +2 -2
  76. package/dist/{phone-number-DJvfJg1b.cjs.map → phone-number-F9I9sNLK.cjs.map} +1 -1
  77. package/dist/{phone-number-Cu7Mnl6J.mjs → phone-number-ao2oCmrO.mjs} +2 -2
  78. package/dist/{phone-number-Cu7Mnl6J.mjs.map → phone-number-ao2oCmrO.mjs.map} +1 -1
  79. package/dist/{progress-display-DbfN7U8m.cjs → progress-display-F8xXJ3T1.cjs} +2 -2
  80. package/dist/{progress-display-DbfN7U8m.cjs.map → progress-display-F8xXJ3T1.cjs.map} +1 -1
  81. package/dist/{progress-display-qgvclwy9.mjs → progress-display-atwRFD6e.mjs} +2 -2
  82. package/dist/{progress-display-qgvclwy9.mjs.map → progress-display-atwRFD6e.mjs.map} +1 -1
  83. package/dist/{statistic-LL4uHlRb.cjs → statistic-B9OqfhOl.cjs} +2 -2
  84. package/dist/{statistic-LL4uHlRb.cjs.map → statistic-B9OqfhOl.cjs.map} +1 -1
  85. package/dist/{statistic-ClkqqDfk.mjs → statistic-CJVc9sNs.mjs} +2 -2
  86. package/dist/{statistic-ClkqqDfk.mjs.map → statistic-CJVc9sNs.mjs.map} +1 -1
  87. package/dist/{status-display-BUphOF18.mjs → status-display-DInGGgiP.mjs} +2 -2
  88. package/dist/{status-display-BUphOF18.mjs.map → status-display-DInGGgiP.mjs.map} +1 -1
  89. package/dist/{status-display-o9inMVvb.cjs → status-display-DpKsYvZJ.cjs} +2 -2
  90. package/dist/{status-display-o9inMVvb.cjs.map → status-display-DpKsYvZJ.cjs.map} +1 -1
  91. package/dist/{summary-bar-Mb1B9Dnf.cjs → summary-bar-DKZh-VSB.cjs} +2 -2
  92. package/dist/{summary-bar-Mb1B9Dnf.cjs.map → summary-bar-DKZh-VSB.cjs.map} +1 -1
  93. package/dist/{summary-bar-CYfgdxrQ.mjs → summary-bar-DX_sOiuL.mjs} +2 -2
  94. package/dist/{summary-bar-CYfgdxrQ.mjs.map → summary-bar-DX_sOiuL.mjs.map} +1 -1
  95. package/dist/{tables-BGzwkdFO.mjs → tables-7_KgoyS-.mjs} +2 -2
  96. package/dist/{tables-BGzwkdFO.mjs.map → tables-7_KgoyS-.mjs.map} +1 -1
  97. package/dist/{tables-078i-X0d.cjs → tables-CS3NhgTc.cjs} +2 -2
  98. package/dist/{tables-078i-X0d.cjs.map → tables-CS3NhgTc.cjs.map} +1 -1
  99. package/dist/{tooltip-BcfELg8e.cjs → tooltip-BcQG6Zw9.cjs} +2 -2
  100. package/dist/{tooltip-BcfELg8e.cjs.map → tooltip-BcQG6Zw9.cjs.map} +1 -1
  101. package/dist/{tooltip-TGmzPdoR.mjs → tooltip-C6flMQgc.mjs} +2 -2
  102. package/dist/{tooltip-TGmzPdoR.mjs.map → tooltip-C6flMQgc.mjs.map} +1 -1
  103. package/dist/ui/file-uploader.cjs +2 -2
  104. package/dist/ui/file-uploader.cjs.map +1 -1
  105. package/dist/ui/file-uploader.mjs +2 -2
  106. package/dist/ui/file-uploader.mjs.map +1 -1
  107. package/package.json +5 -1
  108. package/dist/date-display-BgI7Wjqf.cjs +0 -2
  109. package/dist/date-display-BgI7Wjqf.cjs.map +0 -1
  110. package/dist/date-display-DGfHQhpu.mjs +0 -2
  111. package/dist/date-display-DGfHQhpu.mjs.map +0 -1
  112. package/dist/detail-dialog-Ct0vAjFe.mjs +0 -2
  113. package/dist/detail-dialog-Ct0vAjFe.mjs.map +0 -1
  114. package/dist/detail-dialog-uN5mrCa7.cjs +0 -2
  115. package/dist/detail-dialog-uN5mrCa7.cjs.map +0 -1
  116. package/dist/list-display-BRJVmji0.cjs +0 -2
  117. package/dist/list-display-BRJVmji0.cjs.map +0 -1
  118. package/dist/list-display-Co94sV4H.mjs +0 -2
  119. package/dist/list-display-Co94sV4H.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- import{Button as e}from"./ui/button.mjs";import{X as t}from"./tables-BGzwkdFO.mjs";import{Checkbox as n}from"./ui/checkbox.mjs";import{DropdownMenu as r,DropdownMenuContent as i,DropdownMenuItem as a,DropdownMenuTrigger as o}from"./ui/dropdown-menu.mjs";import{ResizablePanel as s}from"./ui/resizable.mjs";import{Popover as c,PopoverContent as l,PopoverTrigger as u}from"./ui/popover.mjs";import{Input as d}from"./ui/input.mjs";import{Separator as f}from"./ui/separator.mjs";import{Label as p}from"./ui/label.mjs";import{Select as m,SelectContent as h,SelectItem as g,SelectTrigger as _,SelectValue as v}from"./ui/select.mjs";import{CalendarIcon as y,HashIcon as b,ListFilterIcon as x,ListFilterPlus as S,TagIcon as C,ToggleLeftIcon as w,Trash2Icon as T,TypeIcon as E}from"lucide-react";import{Activity as D,useState as O}from"react";import{cn as k}from"@customafk/react-toolkit/utils";import{jsx as A,jsxs as j}from"react/jsx-runtime";const M={tag:A(C,{size:14}),"single-tag":A(C,{size:14}),"date-range":A(y,{size:14}),number:A(b,{size:14}),text:A(E,{size:14}),boolean:A(w,{size:14})},N=[{value:`eq`,label:`Bằng (=)`},{value:`ne`,label:`Không bằng (≠)`},{value:`gt`,label:`Lớn hơn (>)`},{value:`gte`,label:`Ít nhất (≥)`},{value:`lt`,label:`Nhỏ hơn (<)`},{value:`lte`,label:`Nhiều nhất (≤)`},{value:`between`,label:`Trong khoảng`}],P=[{value:`contains`,label:`Chứa`},{value:`equals`,label:`Bằng`},{value:`starts-with`,label:`Bắt đầu bằng`},{value:`ends-with`,label:`Kết thúc bằng`}];function F(e,t){switch(e.type){case`single-tag`:return e.value?t.options?.find(t=>t.value===e.value)?.label??e.value:`Chưa đặt`;case`tag`:return e.values.length?e.values.map(e=>t.options?.find(t=>t.value===e)?.label??e).join(`, `):`Chưa đặt`;case`date-range`:return!e.from&&!e.to?`Ngày không xác định`:e.from&&e.to?`${e.from} → ${e.to}`:e.from?`từ ${e.from}`:`đến ${e.to}`;case`number`:{let t={eq:`=`,ne:`≠`,gt:`>`,gte:`≥`,lt:`<`,lte:`≤`,between:`trong khoảng`}[e.operator];return e.value===void 0?t:e.operator===`between`?`${t} ${e.value} – ${e.valueTo??`?`}`:`${t} ${e.value}`}case`text`:{let t={contains:`chứa`,equals:`là`,"starts-with":`bắt đầu bằng`,"ends-with":`kết thúc bằng`}[e.operator];return e.value?`${t} "${e.value}"`:t}case`boolean`:return e.value===null?`Không xác định`:e.value?`Có`:`Không`}}const I=({value:e,definition:t,onChange:r})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?A(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>j(p,{className:k(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.values.includes(t.value)&&`bg-primary-muted hover:bg-primary-subtle`),children:[A(n,{checked:e.values.includes(t.value),onCheckedChange:n=>{r({type:`tag`,values:n?[...e.values,t.value]:e.values.filter(e=>e!==t.value)})}}),A(`span`,{className:`text-sm`,children:t.label})]},t.value))}),L=({value:e,definition:t,onChange:r})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?A(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>j(p,{className:k(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.value===t.value&&`bg-primary-muted hover:bg-primary-subtle`),children:[A(n,{checked:e.value===t.value,onCheckedChange:e=>{r({type:`single-tag`,value:e?t.value:null})}}),A(`span`,{className:`text-sm`,children:t.label})]},t.value))}),R=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(`div`,{className:`flex flex-col gap-1`,children:[A(`span`,{className:`text-text-positive-muted text-xs`,children:`Từ ngày`}),A(d,{type:`date`,size:`md`,value:e.from??``,onValueChange:n=>t({...e,from:n||void 0})})]}),j(`div`,{className:`flex flex-col gap-1`,children:[A(`span`,{className:`text-text-positive-muted text-xs`,children:`Đến ngày`}),A(d,{type:`date`,size:`md`,value:e.to??``,onValueChange:n=>t({...e,to:n||void 0})})]})]}),z=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(m,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[A(_,{size:`sm`,children:A(v,{})}),A(h,{children:N.map(e=>A(g,{value:e.value,children:e.label},e.value))})]}),A(d,{type:`number`,size:`md`,placeholder:`Giá trị`,value:e.value??``,onValueChange:n=>t({...e,value:n?Number(n):void 0})}),e.operator===`between`&&A(d,{type:`number`,size:`md`,placeholder:`Đến giá trị`,value:e.valueTo??``,onValueChange:n=>t({...e,valueTo:n?Number(n):void 0})})]}),B=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(m,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[A(_,{size:`sm`,children:A(v,{})}),A(h,{children:P.map(e=>A(g,{value:e.value,children:e.label},e.value))})]}),A(d,{type:`text`,size:`md`,placeholder:`Nhập văn bản...`,value:e.value,onValueChange:n=>t({...e,value:n})})]}),V=[{label:`Có`,value:!0},{label:`Không`,value:!1},{label:`Không xác định`,value:null}],H=({value:t,onChange:n})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:V.map(({label:r,value:i})=>A(e,{type:`button`,tabIndex:-1,variant:`outline`,className:k(`rounded px-3 py-1.5 text-left text-sm transition-colors`,t.value===i?`bg-primary-muted font-medium`:`hover:bg-muted-bg-subtle`),onClick:()=>n({type:`boolean`,value:i}),children:r},r))});function U({value:e,definition:t,onChange:n}){switch(e.type){case`tag`:return A(I,{value:e,definition:t,onChange:n});case`single-tag`:return A(L,{value:e,definition:t,onChange:n});case`date-range`:return A(R,{value:e,onChange:n});case`number`:return A(z,{value:e,onChange:n});case`text`:return A(B,{value:e,onChange:n});case`boolean`:return A(H,{value:e,onChange:n})}}const W=({filter:t,definition:n,onRemove:r,onUpdate:i})=>j(`div`,{className:`flex items-center gap-1`,children:[j(c,{children:[A(u,{asChild:!0,children:j(e,{type:`button`,variant:`outline`,color:`muted`,className:`flex-1 bg-white max-w-[calc(100%-32px)] justify-start`,innerClassName:`flex truncate gap-1.5`,children:[A(`span`,{className:`shrink-0 text-text-positive font-medium`,children:n.label}),A(`span`,{className:`truncate text-xs text-text-positive-weak`,children:F(t.value,n)})]})}),j(l,{className:`w-64 p-0`,align:`start`,side:`bottom`,children:[A(`div`,{className:`border-b border-border px-3 py-2`,children:j(`div`,{className:`flex items-center gap-1.5`,children:[A(`span`,{className:`text-text-positive-muted`,children:M[n.type]}),A(`p`,{className:`font-medium`,children:n.label})]})}),A(U,{value:t.value,definition:n,onChange:i})]})]}),A(e,{type:`button`,size:`icon`,variant:`soft`,color:`danger`,className:`shrink`,onClick:r,children:A(T,{size:13})})]}),G=()=>{let{filterDefinitions:n,activeFilters:c,addFilter:l,removeFilter:u,updateFilter:d}=t(),[p,m]=O(null),h=n.filter(e=>!c.some(t=>t.definitionId===e.id));return A(s,{defaultSize:25,className:k(`bg-card`,p===null?`max-w-8!`:`min-w-64`),children:j(`div`,{className:`relative z-20 flex size-full bg-muted-bg-subtle`,children:[A(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:A(D,{mode:p===`filters`?`visible`:`hidden`,children:j(`div`,{className:`flex size-full flex-col gap-2 p-4`,children:[j(`div`,{className:`flex items-center justify-between gap-2`,children:[A(`p`,{className:`font-medium`,children:`Bộ lọc`}),j(r,{children:[A(o,{asChild:!0,children:j(e,{variant:`outline`,color:`muted`,disabled:h.length===0,children:[A(S,{size:13}),`Thêm bộ lọc`]})}),A(i,{align:`end`,children:h.map(e=>j(a,{className:`flex items-center gap-2`,onClick:()=>l(e.id),children:[M[e.type],e.label]},e.id))})]})]}),A(f,{}),c.length===0?A(`p`,{className:`py-6 text-center text-xs text-text-positive-muted`,children:`Không có bộ lọc nào`}):A(`div`,{className:`flex flex-col gap-2 pt-1`,children:c.map(e=>{let t=n.find(t=>t.id===e.definitionId);return t?A(W,{filter:e,definition:t,onRemove:()=>u(e.id),onUpdate:t=>d(e.id,t)},e.id):null})})]})})}),j(`div`,{className:`flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm`,children:[j(`button`,{type:`button`,className:k(`relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4`,p===`filters`&&`bg-card`),onClick:()=>m(p===`filters`?null:`filters`),children:[A(x,{size:18}),c.length>0&&A(`span`,{className:`absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground`,children:c.length}),A(`span`,{className:`text-nowrap [writing-mode:vertical-lr]`,children:`Bộ lọc`})]}),A(f,{})]})]})})};export{G as UITableFilter};
2
- //# sourceMappingURL=filter-CWuRGTl4.mjs.map
1
+ import{Button as e}from"./ui/button.mjs";import{X as t}from"./tables-7_KgoyS-.mjs";import{Checkbox as n}from"./ui/checkbox.mjs";import{DropdownMenu as r,DropdownMenuContent as i,DropdownMenuItem as a,DropdownMenuTrigger as o}from"./ui/dropdown-menu.mjs";import{ResizablePanel as s}from"./ui/resizable.mjs";import{Popover as c,PopoverContent as l,PopoverTrigger as u}from"./ui/popover.mjs";import{Input as d}from"./ui/input.mjs";import{Separator as f}from"./ui/separator.mjs";import{Label as p}from"./ui/label.mjs";import{Select as m,SelectContent as h,SelectItem as g,SelectTrigger as _,SelectValue as v}from"./ui/select.mjs";import{CalendarIcon as y,HashIcon as b,ListFilterIcon as x,ListFilterPlus as S,TagIcon as C,ToggleLeftIcon as w,Trash2Icon as T,TypeIcon as E}from"lucide-react";import{Activity as D,useState as O}from"react";import{cn as k}from"@customafk/react-toolkit/utils";import{jsx as A,jsxs as j}from"react/jsx-runtime";const M={tag:A(C,{size:14}),"single-tag":A(C,{size:14}),"date-range":A(y,{size:14}),number:A(b,{size:14}),text:A(E,{size:14}),boolean:A(w,{size:14})},N=[{value:`eq`,label:`Bằng (=)`},{value:`ne`,label:`Không bằng (≠)`},{value:`gt`,label:`Lớn hơn (>)`},{value:`gte`,label:`Ít nhất (≥)`},{value:`lt`,label:`Nhỏ hơn (<)`},{value:`lte`,label:`Nhiều nhất (≤)`},{value:`between`,label:`Trong khoảng`}],P=[{value:`contains`,label:`Chứa`},{value:`equals`,label:`Bằng`},{value:`starts-with`,label:`Bắt đầu bằng`},{value:`ends-with`,label:`Kết thúc bằng`}];function F(e,t){switch(e.type){case`single-tag`:return e.value?t.options?.find(t=>t.value===e.value)?.label??e.value:`Chưa đặt`;case`tag`:return e.values.length?e.values.map(e=>t.options?.find(t=>t.value===e)?.label??e).join(`, `):`Chưa đặt`;case`date-range`:return!e.from&&!e.to?`Ngày không xác định`:e.from&&e.to?`${e.from} → ${e.to}`:e.from?`từ ${e.from}`:`đến ${e.to}`;case`number`:{let t={eq:`=`,ne:`≠`,gt:`>`,gte:`≥`,lt:`<`,lte:`≤`,between:`trong khoảng`}[e.operator];return e.value===void 0?t:e.operator===`between`?`${t} ${e.value} – ${e.valueTo??`?`}`:`${t} ${e.value}`}case`text`:{let t={contains:`chứa`,equals:`là`,"starts-with":`bắt đầu bằng`,"ends-with":`kết thúc bằng`}[e.operator];return e.value?`${t} "${e.value}"`:t}case`boolean`:return e.value===null?`Không xác định`:e.value?`Có`:`Không`}}const I=({value:e,definition:t,onChange:r})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?A(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>j(p,{className:k(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.values.includes(t.value)&&`bg-primary-muted hover:bg-primary-subtle`),children:[A(n,{checked:e.values.includes(t.value),onCheckedChange:n=>{r({type:`tag`,values:n?[...e.values,t.value]:e.values.filter(e=>e!==t.value)})}}),A(`span`,{className:`text-sm`,children:t.label})]},t.value))}),L=({value:e,definition:t,onChange:r})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?A(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>j(p,{className:k(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.value===t.value&&`bg-primary-muted hover:bg-primary-subtle`),children:[A(n,{checked:e.value===t.value,onCheckedChange:e=>{r({type:`single-tag`,value:e?t.value:null})}}),A(`span`,{className:`text-sm`,children:t.label})]},t.value))}),R=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(`div`,{className:`flex flex-col gap-1`,children:[A(`span`,{className:`text-text-positive-muted text-xs`,children:`Từ ngày`}),A(d,{type:`date`,size:`md`,value:e.from??``,onValueChange:n=>t({...e,from:n||void 0})})]}),j(`div`,{className:`flex flex-col gap-1`,children:[A(`span`,{className:`text-text-positive-muted text-xs`,children:`Đến ngày`}),A(d,{type:`date`,size:`md`,value:e.to??``,onValueChange:n=>t({...e,to:n||void 0})})]})]}),z=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(m,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[A(_,{size:`sm`,children:A(v,{})}),A(h,{children:N.map(e=>A(g,{value:e.value,children:e.label},e.value))})]}),A(d,{type:`number`,size:`md`,placeholder:`Giá trị`,value:e.value??``,onValueChange:n=>t({...e,value:n?Number(n):void 0})}),e.operator===`between`&&A(d,{type:`number`,size:`md`,placeholder:`Đến giá trị`,value:e.valueTo??``,onValueChange:n=>t({...e,valueTo:n?Number(n):void 0})})]}),B=({value:e,onChange:t})=>j(`div`,{className:`flex flex-col gap-3 p-3`,children:[j(m,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[A(_,{size:`sm`,children:A(v,{})}),A(h,{children:P.map(e=>A(g,{value:e.value,children:e.label},e.value))})]}),A(d,{type:`text`,size:`md`,placeholder:`Nhập văn bản...`,value:e.value,onValueChange:n=>t({...e,value:n})})]}),V=[{label:`Có`,value:!0},{label:`Không`,value:!1},{label:`Không xác định`,value:null}],H=({value:t,onChange:n})=>A(`div`,{className:`flex flex-col gap-1 p-3`,children:V.map(({label:r,value:i})=>A(e,{type:`button`,tabIndex:-1,variant:`outline`,className:k(`rounded px-3 py-1.5 text-left text-sm transition-colors`,t.value===i?`bg-primary-muted font-medium`:`hover:bg-muted-bg-subtle`),onClick:()=>n({type:`boolean`,value:i}),children:r},r))});function U({value:e,definition:t,onChange:n}){switch(e.type){case`tag`:return A(I,{value:e,definition:t,onChange:n});case`single-tag`:return A(L,{value:e,definition:t,onChange:n});case`date-range`:return A(R,{value:e,onChange:n});case`number`:return A(z,{value:e,onChange:n});case`text`:return A(B,{value:e,onChange:n});case`boolean`:return A(H,{value:e,onChange:n})}}const W=({filter:t,definition:n,onRemove:r,onUpdate:i})=>j(`div`,{className:`flex items-center gap-1`,children:[j(c,{children:[A(u,{asChild:!0,children:j(e,{type:`button`,variant:`outline`,color:`muted`,className:`flex-1 bg-white max-w-[calc(100%-32px)] justify-start`,innerClassName:`flex truncate gap-1.5`,children:[A(`span`,{className:`shrink-0 text-text-positive font-medium`,children:n.label}),A(`span`,{className:`truncate text-xs text-text-positive-weak`,children:F(t.value,n)})]})}),j(l,{className:`w-64 p-0`,align:`start`,side:`bottom`,children:[A(`div`,{className:`border-b border-border px-3 py-2`,children:j(`div`,{className:`flex items-center gap-1.5`,children:[A(`span`,{className:`text-text-positive-muted`,children:M[n.type]}),A(`p`,{className:`font-medium`,children:n.label})]})}),A(U,{value:t.value,definition:n,onChange:i})]})]}),A(e,{type:`button`,size:`icon`,variant:`soft`,color:`danger`,className:`shrink`,onClick:r,children:A(T,{size:13})})]}),G=()=>{let{filterDefinitions:n,activeFilters:c,addFilter:l,removeFilter:u,updateFilter:d}=t(),[p,m]=O(null),h=n.filter(e=>!c.some(t=>t.definitionId===e.id));return A(s,{defaultSize:25,className:k(`bg-card`,p===null?`max-w-8!`:`min-w-64`),children:j(`div`,{className:`relative z-20 flex size-full bg-muted-bg-subtle`,children:[A(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:A(D,{mode:p===`filters`?`visible`:`hidden`,children:j(`div`,{className:`flex size-full flex-col gap-2 p-4`,children:[j(`div`,{className:`flex items-center justify-between gap-2`,children:[A(`p`,{className:`font-medium`,children:`Bộ lọc`}),j(r,{children:[A(o,{asChild:!0,children:j(e,{variant:`outline`,color:`muted`,disabled:h.length===0,children:[A(S,{size:13}),`Thêm bộ lọc`]})}),A(i,{align:`end`,children:h.map(e=>j(a,{className:`flex items-center gap-2`,onClick:()=>l(e.id),children:[M[e.type],e.label]},e.id))})]})]}),A(f,{}),c.length===0?A(`p`,{className:`py-6 text-center text-xs text-text-positive-muted`,children:`Không có bộ lọc nào`}):A(`div`,{className:`flex flex-col gap-2 pt-1`,children:c.map(e=>{let t=n.find(t=>t.id===e.definitionId);return t?A(W,{filter:e,definition:t,onRemove:()=>u(e.id),onUpdate:t=>d(e.id,t)},e.id):null})})]})})}),j(`div`,{className:`flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm`,children:[j(`button`,{type:`button`,className:k(`relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4`,p===`filters`&&`bg-card`),onClick:()=>m(p===`filters`?null:`filters`),children:[A(x,{size:18}),c.length>0&&A(`span`,{className:`absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground`,children:c.length}),A(`span`,{className:`text-nowrap [writing-mode:vertical-lr]`,children:`Bộ lọc`})]}),A(f,{})]})]})})};export{G as UITableFilter};
2
+ //# sourceMappingURL=filter-BCNjqiBx.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-CWuRGTl4.mjs","names":[],"sources":["../packages/components/features/tables/components/table/filter.tsx"],"sourcesContent":["/**\n * @file filter.tsx\n * Collapsible side-panel with column-visibility toggles and a dynamic filter builder.\n *\n * - \"Columns\" tab: toggle individual column visibility.\n * - \"Filters\" tab: \"Add Filter\" dropdown → active filter chips → per-filter Popover editor.\n */\nimport { Activity, useState } from 'react';\n\nimport { CalendarIcon, HashIcon, ListFilterIcon, ListFilterPlus, TagIcon, ToggleLeftIcon, Trash2Icon, TypeIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { ResizablePanel } from '@/components/ui/resizable';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useUITableFilterContext } from '../../hooks/use-context';\nimport type {\n ActiveFilter,\n BooleanFilterValue,\n DateRangeFilterValue,\n FilterDefinition,\n FilterType,\n FilterValue,\n NumberFilterValue,\n SingleTagFilterValue,\n TagFilterValue,\n TextFilterValue,\n} from '../../types';\n\n// ── icons per filter type ──────────────────────────────────────────────────────\n\nconst TYPE_ICONS: Record<FilterType, React.ReactNode> = {\n tag: <TagIcon size={14} />,\n 'single-tag': <TagIcon size={14} />,\n 'date-range': <CalendarIcon size={14} />,\n number: <HashIcon size={14} />,\n text: <TypeIcon size={14} />,\n boolean: <ToggleLeftIcon size={14} />,\n};\n\n// ── operator options ───────────────────────────────────────────────────────────\n\nconst NUMBER_OPERATORS: { value: NumberFilterValue['operator']; label: string }[] = [\n { value: 'eq', label: 'Bằng (=)' },\n { value: 'ne', label: 'Không bằng (≠)' },\n { value: 'gt', label: 'Lớn hơn (>)' },\n { value: 'gte', label: 'Ít nhất (≥)' },\n { value: 'lt', label: 'Nhỏ hơn (<)' },\n { value: 'lte', label: 'Nhiều nhất (≤)' },\n { value: 'between', label: 'Trong khoảng' },\n];\n\nconst TEXT_OPERATORS: { value: TextFilterValue['operator']; label: string }[] = [\n { value: 'contains', label: 'Chứa' },\n { value: 'equals', label: 'Bằng' },\n { value: 'starts-with', label: 'Bắt đầu bằng' },\n { value: 'ends-with', label: 'Kết thúc bằng' },\n];\n\n// ── summary label ──────────────────────────────────────────────────────────────\n\nfunction formatFilterValue(value: FilterValue, def: FilterDefinition): string {\n switch (value.type) {\n case 'single-tag': {\n if (!value.value) return 'Chưa đặt';\n return def.options?.find(o => o.value === value.value)?.label ?? value.value;\n }\n case 'tag': {\n if (!value.values.length) return 'Chưa đặt';\n return value.values.map(v => def.options?.find(o => o.value === v)?.label ?? v).join(', ');\n }\n case 'date-range': {\n if (!value.from && !value.to) return 'Ngày không xác định';\n if (value.from && value.to) return `${value.from} → ${value.to}`;\n if (value.from) return `từ ${value.from}`;\n return `đến ${value.to}`;\n }\n case 'number': {\n const op = { eq: '=', ne: '≠', gt: '>', gte: '≥', lt: '<', lte: '≤', between: 'trong khoảng' }[value.operator];\n if (value.value === undefined) return op;\n if (value.operator === 'between') return `${op} ${value.value} – ${value.valueTo ?? '?'}`;\n return `${op} ${value.value}`;\n }\n case 'text': {\n const op = {\n contains: 'chứa',\n equals: 'là',\n 'starts-with': 'bắt đầu bằng',\n 'ends-with': 'kết thúc bằng',\n }[value.operator];\n return value.value ? `${op} \"${value.value}\"` : op;\n }\n case 'boolean':\n if (value.value === null) return 'Không xác định';\n return value.value ? 'Có' : 'Không';\n }\n}\n\n// ── filter editors ─────────────────────────────────────────────────────────────\n\nconst TagFilterEditor: React.FC<{\n value: TagFilterValue;\n definition: FilterDefinition;\n onChange: (v: TagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.values.includes(option.value) && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.values.includes(option.value)}\n onCheckedChange={checked => {\n const next = checked ? [...value.values, option.value] : value.values.filter(v => v !== option.value);\n onChange({ type: 'tag', values: next });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst SingleTagFilterEditor: React.FC<{\n value: SingleTagFilterValue;\n definition: FilterDefinition;\n onChange: (v: SingleTagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.value === option.value && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.value === option.value}\n onCheckedChange={checked => {\n onChange({ type: 'single-tag', value: checked ? option.value : null });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst DateRangeFilterEditor: React.FC<{\n value: DateRangeFilterValue;\n onChange: (v: DateRangeFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Từ ngày</span>\n <Input type=\"date\" size=\"md\" value={value.from ?? ''} onValueChange={v => onChange({ ...value, from: v || undefined })} />\n </div>\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Đến ngày</span>\n <Input type=\"date\" size=\"md\" value={value.to ?? ''} onValueChange={v => onChange({ ...value, to: v || undefined })} />\n </div>\n </div>\n);\n\nconst NumberFilterEditor: React.FC<{\n value: NumberFilterValue;\n onChange: (v: NumberFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as NumberFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Giá trị\"\n value={value.value ?? ''}\n onValueChange={v => onChange({ ...value, value: v ? Number(v) : undefined })}\n />\n {value.operator === 'between' && (\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Đến giá trị\"\n value={value.valueTo ?? ''}\n onValueChange={v => onChange({ ...value, valueTo: v ? Number(v) : undefined })}\n />\n )}\n </div>\n);\n\nconst TextFilterEditor: React.FC<{\n value: TextFilterValue;\n onChange: (v: TextFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as TextFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {TEXT_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input type=\"text\" size=\"md\" placeholder=\"Nhập văn bản...\" value={value.value} onValueChange={v => onChange({ ...value, value: v })} />\n </div>\n);\n\nconst BOOLEAN_OPTIONS = [\n { label: 'Có', value: true as boolean | null },\n { label: 'Không', value: false as boolean | null },\n { label: 'Không xác định', value: null as boolean | null },\n];\n\nconst BooleanFilterEditor: React.FC<{\n value: BooleanFilterValue;\n onChange: (v: BooleanFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {BOOLEAN_OPTIONS.map(({ label, value: v }) => (\n <Button\n key={label}\n type=\"button\"\n tabIndex={-1}\n variant=\"outline\"\n className={cn(\n 'rounded px-3 py-1.5 text-left text-sm transition-colors',\n value.value === v ? 'bg-primary-muted font-medium' : 'hover:bg-muted-bg-subtle'\n )}\n onClick={() => onChange({ type: 'boolean', value: v })}\n >\n {label}\n </Button>\n ))}\n </div>\n);\n\nfunction FilterEditor({ value, definition, onChange }: { value: FilterValue; definition: FilterDefinition; onChange: (v: FilterValue) => void }) {\n switch (value.type) {\n case 'tag':\n return <TagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'single-tag':\n return <SingleTagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'date-range':\n return <DateRangeFilterEditor value={value} onChange={onChange} />;\n case 'number':\n return <NumberFilterEditor value={value} onChange={onChange} />;\n case 'text':\n return <TextFilterEditor value={value} onChange={onChange} />;\n case 'boolean':\n return <BooleanFilterEditor value={value} onChange={onChange} />;\n }\n}\n\n// ── filter item chip ───────────────────────────────────────────────────────────\n\nconst FilterItem: React.FC<{\n filter: ActiveFilter;\n definition: FilterDefinition;\n onRemove: () => void;\n onUpdate: (value: FilterValue) => void;\n}> = ({ filter, definition, onRemove, onUpdate }) => (\n <div className=\"flex items-center gap-1\">\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"muted\"\n className=\"flex-1 bg-white max-w-[calc(100%-32px)] justify-start\"\n innerClassName=\"flex truncate gap-1.5\"\n >\n <span className=\"shrink-0 text-text-positive font-medium\">{definition.label}</span>\n <span className=\"truncate text-xs text-text-positive-weak\">{formatFilterValue(filter.value, definition)}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64 p-0\" align=\"start\" side=\"bottom\">\n <div className=\"border-b border-border px-3 py-2\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-positive-muted\">{TYPE_ICONS[definition.type]}</span>\n <p className=\"font-medium\">{definition.label}</p>\n </div>\n </div>\n <FilterEditor value={filter.value} definition={definition} onChange={onUpdate} />\n </PopoverContent>\n </Popover>\n <Button type=\"button\" size=\"icon\" variant=\"soft\" color=\"danger\" className=\"shrink\" onClick={onRemove}>\n <Trash2Icon size={13} />\n </Button>\n </div>\n);\n\n// ── column visibility row ──────────────────────────────────────────────────────\n\n// const ColumnVisibility: React.FC<{\n// checked: boolean;\n// title: string;\n// onCheckedChange?: (checked: boolean) => void;\n// }> = ({ checked, title, onCheckedChange }) => (\n// <Label>\n// <Checkbox checked={checked} onCheckedChange={onCheckedChange} />\n// <p className=\"text-sm\">{title}</p>\n// </Label>\n// );\n\n// ── main component ─────────────────────────────────────────────────────────────\n\n/**\n * Collapsible side-panel that lets users toggle column visibility and build\n * row filters without leaving the table view.\n *\n * The panel collapses to a narrow icon strip when no tab is active and expands\n * to at least 64 units when the \"Columns\" or \"Filters\" tab is selected.\n *\n * Wire filter capability by passing `filterDefinitions` and `onFilterChange` to\n * the parent `UITableProvider`.\n *\n * @example\n * ```tsx\n * <UITableProvider\n * filterDefinitions={[\n * { id: 'status', label: 'Status', type: 'tag', options: [{ label: 'Active', value: 'active' }] },\n * { id: 'created', label: 'Created At', type: 'date-range' },\n * { id: 'amount', label: 'Amount', type: 'number' },\n * ]}\n * onFilterChange={filters => console.log(filters)}\n * >\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel><UITable /></ResizablePanel>\n * <ResizableHandle />\n * <UITableFilter />\n * </ResizablePanelGroup>\n * </UITableProvider>\n * ```\n */\nexport const UITableFilter = () => {\n // const { table } = useUITableContext();\n const { filterDefinitions, activeFilters, addFilter, removeFilter, updateFilter } = useUITableFilterContext();\n\n const [tab, setTab] = useState<'columns' | 'filters' | null>(null);\n\n const availableDefinitions = filterDefinitions.filter(def => !activeFilters.some(f => f.definitionId === def.id));\n\n return (\n <ResizablePanel defaultSize={25} className={cn('bg-card', tab === null ? 'max-w-8!' : 'min-w-64')}>\n <div className=\"relative z-20 flex size-full bg-muted-bg-subtle\">\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n {/* Columns tab */}\n {/*<Activity mode={tab === 'columns' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <p className=\"px-2 font-medium\">Columns Visibility</p>\n <Separator />\n <div className=\"flex flex-col gap-4 pt-4\">\n {table.getAllColumns().map(column => {\n if (['select', 'actions'].includes(column.id)) return null;\n return (\n <ColumnVisibility\n key={column.id}\n checked={column.getIsVisible()}\n title={String(column.columnDef.header)}\n onCheckedChange={value => column.toggleVisibility(!!value)}\n />\n );\n })}\n </div>\n </div>\n </Activity>*/}\n\n {/* Filters tab */}\n <Activity mode={tab === 'filters' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <p className=\"font-medium\">Bộ lọc</p>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" color=\"muted\" disabled={availableDefinitions.length === 0}>\n <ListFilterPlus size={13} />\n Thêm bộ lọc\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {availableDefinitions.map(def => (\n <DropdownMenuItem key={def.id} className=\"flex items-center gap-2\" onClick={() => addFilter(def.id)}>\n {TYPE_ICONS[def.type]}\n {def.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <Separator />\n {activeFilters.length === 0 ? (\n <p className=\"py-6 text-center text-xs text-text-positive-muted\">Không có bộ lọc nào</p>\n ) : (\n <div className=\"flex flex-col gap-2 pt-1\">\n {activeFilters.map(filter => {\n const def = filterDefinitions.find(d => d.id === filter.definitionId);\n if (!def) return null;\n return (\n <FilterItem\n key={filter.id}\n filter={filter}\n definition={def}\n onRemove={() => removeFilter(filter.id)}\n onUpdate={value => updateFilter(filter.id, value)}\n />\n );\n })}\n </div>\n )}\n </div>\n </Activity>\n </div>\n\n {/* Vertical tab strip */}\n <div className=\"flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm\">\n {/*<button\n type=\"button\"\n className={cn('flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'columns' && 'bg-card')}\n onClick={() => setTab(tab === 'columns' ? null : 'columns')}\n >\n <Columns4Icon size={18} />\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Columns</span>\n </button>\n <Separator />*/}\n <button\n type=\"button\"\n className={cn('relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'filters' && 'bg-card')}\n onClick={() => setTab(tab === 'filters' ? null : 'filters')}\n >\n <ListFilterIcon size={18} />\n {activeFilters.length > 0 && (\n <span className=\"absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground\">\n {activeFilters.length}\n </span>\n )}\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Bộ lọc</span>\n </button>\n <Separator />\n </div>\n </div>\n </ResizablePanel>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter-BCNjqiBx.mjs","names":[],"sources":["../packages/components/features/tables/components/table/filter.tsx"],"sourcesContent":["/**\n * @file filter.tsx\n * Collapsible side-panel with column-visibility toggles and a dynamic filter builder.\n *\n * - \"Columns\" tab: toggle individual column visibility.\n * - \"Filters\" tab: \"Add Filter\" dropdown → active filter chips → per-filter Popover editor.\n */\nimport { Activity, useState } from 'react';\n\nimport { CalendarIcon, HashIcon, ListFilterIcon, ListFilterPlus, TagIcon, ToggleLeftIcon, Trash2Icon, TypeIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { ResizablePanel } from '@/components/ui/resizable';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useUITableFilterContext } from '../../hooks/use-context';\nimport type {\n ActiveFilter,\n BooleanFilterValue,\n DateRangeFilterValue,\n FilterDefinition,\n FilterType,\n FilterValue,\n NumberFilterValue,\n SingleTagFilterValue,\n TagFilterValue,\n TextFilterValue,\n} from '../../types';\n\n// ── icons per filter type ──────────────────────────────────────────────────────\n\nconst TYPE_ICONS: Record<FilterType, React.ReactNode> = {\n tag: <TagIcon size={14} />,\n 'single-tag': <TagIcon size={14} />,\n 'date-range': <CalendarIcon size={14} />,\n number: <HashIcon size={14} />,\n text: <TypeIcon size={14} />,\n boolean: <ToggleLeftIcon size={14} />,\n};\n\n// ── operator options ───────────────────────────────────────────────────────────\n\nconst NUMBER_OPERATORS: { value: NumberFilterValue['operator']; label: string }[] = [\n { value: 'eq', label: 'Bằng (=)' },\n { value: 'ne', label: 'Không bằng (≠)' },\n { value: 'gt', label: 'Lớn hơn (>)' },\n { value: 'gte', label: 'Ít nhất (≥)' },\n { value: 'lt', label: 'Nhỏ hơn (<)' },\n { value: 'lte', label: 'Nhiều nhất (≤)' },\n { value: 'between', label: 'Trong khoảng' },\n];\n\nconst TEXT_OPERATORS: { value: TextFilterValue['operator']; label: string }[] = [\n { value: 'contains', label: 'Chứa' },\n { value: 'equals', label: 'Bằng' },\n { value: 'starts-with', label: 'Bắt đầu bằng' },\n { value: 'ends-with', label: 'Kết thúc bằng' },\n];\n\n// ── summary label ──────────────────────────────────────────────────────────────\n\nfunction formatFilterValue(value: FilterValue, def: FilterDefinition): string {\n switch (value.type) {\n case 'single-tag': {\n if (!value.value) return 'Chưa đặt';\n return def.options?.find(o => o.value === value.value)?.label ?? value.value;\n }\n case 'tag': {\n if (!value.values.length) return 'Chưa đặt';\n return value.values.map(v => def.options?.find(o => o.value === v)?.label ?? v).join(', ');\n }\n case 'date-range': {\n if (!value.from && !value.to) return 'Ngày không xác định';\n if (value.from && value.to) return `${value.from} → ${value.to}`;\n if (value.from) return `từ ${value.from}`;\n return `đến ${value.to}`;\n }\n case 'number': {\n const op = { eq: '=', ne: '≠', gt: '>', gte: '≥', lt: '<', lte: '≤', between: 'trong khoảng' }[value.operator];\n if (value.value === undefined) return op;\n if (value.operator === 'between') return `${op} ${value.value} – ${value.valueTo ?? '?'}`;\n return `${op} ${value.value}`;\n }\n case 'text': {\n const op = {\n contains: 'chứa',\n equals: 'là',\n 'starts-with': 'bắt đầu bằng',\n 'ends-with': 'kết thúc bằng',\n }[value.operator];\n return value.value ? `${op} \"${value.value}\"` : op;\n }\n case 'boolean':\n if (value.value === null) return 'Không xác định';\n return value.value ? 'Có' : 'Không';\n }\n}\n\n// ── filter editors ─────────────────────────────────────────────────────────────\n\nconst TagFilterEditor: React.FC<{\n value: TagFilterValue;\n definition: FilterDefinition;\n onChange: (v: TagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.values.includes(option.value) && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.values.includes(option.value)}\n onCheckedChange={checked => {\n const next = checked ? [...value.values, option.value] : value.values.filter(v => v !== option.value);\n onChange({ type: 'tag', values: next });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst SingleTagFilterEditor: React.FC<{\n value: SingleTagFilterValue;\n definition: FilterDefinition;\n onChange: (v: SingleTagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.value === option.value && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.value === option.value}\n onCheckedChange={checked => {\n onChange({ type: 'single-tag', value: checked ? option.value : null });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst DateRangeFilterEditor: React.FC<{\n value: DateRangeFilterValue;\n onChange: (v: DateRangeFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Từ ngày</span>\n <Input type=\"date\" size=\"md\" value={value.from ?? ''} onValueChange={v => onChange({ ...value, from: v || undefined })} />\n </div>\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Đến ngày</span>\n <Input type=\"date\" size=\"md\" value={value.to ?? ''} onValueChange={v => onChange({ ...value, to: v || undefined })} />\n </div>\n </div>\n);\n\nconst NumberFilterEditor: React.FC<{\n value: NumberFilterValue;\n onChange: (v: NumberFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as NumberFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Giá trị\"\n value={value.value ?? ''}\n onValueChange={v => onChange({ ...value, value: v ? Number(v) : undefined })}\n />\n {value.operator === 'between' && (\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Đến giá trị\"\n value={value.valueTo ?? ''}\n onValueChange={v => onChange({ ...value, valueTo: v ? Number(v) : undefined })}\n />\n )}\n </div>\n);\n\nconst TextFilterEditor: React.FC<{\n value: TextFilterValue;\n onChange: (v: TextFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as TextFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {TEXT_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input type=\"text\" size=\"md\" placeholder=\"Nhập văn bản...\" value={value.value} onValueChange={v => onChange({ ...value, value: v })} />\n </div>\n);\n\nconst BOOLEAN_OPTIONS = [\n { label: 'Có', value: true as boolean | null },\n { label: 'Không', value: false as boolean | null },\n { label: 'Không xác định', value: null as boolean | null },\n];\n\nconst BooleanFilterEditor: React.FC<{\n value: BooleanFilterValue;\n onChange: (v: BooleanFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {BOOLEAN_OPTIONS.map(({ label, value: v }) => (\n <Button\n key={label}\n type=\"button\"\n tabIndex={-1}\n variant=\"outline\"\n className={cn(\n 'rounded px-3 py-1.5 text-left text-sm transition-colors',\n value.value === v ? 'bg-primary-muted font-medium' : 'hover:bg-muted-bg-subtle'\n )}\n onClick={() => onChange({ type: 'boolean', value: v })}\n >\n {label}\n </Button>\n ))}\n </div>\n);\n\nfunction FilterEditor({ value, definition, onChange }: { value: FilterValue; definition: FilterDefinition; onChange: (v: FilterValue) => void }) {\n switch (value.type) {\n case 'tag':\n return <TagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'single-tag':\n return <SingleTagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'date-range':\n return <DateRangeFilterEditor value={value} onChange={onChange} />;\n case 'number':\n return <NumberFilterEditor value={value} onChange={onChange} />;\n case 'text':\n return <TextFilterEditor value={value} onChange={onChange} />;\n case 'boolean':\n return <BooleanFilterEditor value={value} onChange={onChange} />;\n }\n}\n\n// ── filter item chip ───────────────────────────────────────────────────────────\n\nconst FilterItem: React.FC<{\n filter: ActiveFilter;\n definition: FilterDefinition;\n onRemove: () => void;\n onUpdate: (value: FilterValue) => void;\n}> = ({ filter, definition, onRemove, onUpdate }) => (\n <div className=\"flex items-center gap-1\">\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"muted\"\n className=\"flex-1 bg-white max-w-[calc(100%-32px)] justify-start\"\n innerClassName=\"flex truncate gap-1.5\"\n >\n <span className=\"shrink-0 text-text-positive font-medium\">{definition.label}</span>\n <span className=\"truncate text-xs text-text-positive-weak\">{formatFilterValue(filter.value, definition)}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64 p-0\" align=\"start\" side=\"bottom\">\n <div className=\"border-b border-border px-3 py-2\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-positive-muted\">{TYPE_ICONS[definition.type]}</span>\n <p className=\"font-medium\">{definition.label}</p>\n </div>\n </div>\n <FilterEditor value={filter.value} definition={definition} onChange={onUpdate} />\n </PopoverContent>\n </Popover>\n <Button type=\"button\" size=\"icon\" variant=\"soft\" color=\"danger\" className=\"shrink\" onClick={onRemove}>\n <Trash2Icon size={13} />\n </Button>\n </div>\n);\n\n// ── column visibility row ──────────────────────────────────────────────────────\n\n// const ColumnVisibility: React.FC<{\n// checked: boolean;\n// title: string;\n// onCheckedChange?: (checked: boolean) => void;\n// }> = ({ checked, title, onCheckedChange }) => (\n// <Label>\n// <Checkbox checked={checked} onCheckedChange={onCheckedChange} />\n// <p className=\"text-sm\">{title}</p>\n// </Label>\n// );\n\n// ── main component ─────────────────────────────────────────────────────────────\n\n/**\n * Collapsible side-panel that lets users toggle column visibility and build\n * row filters without leaving the table view.\n *\n * The panel collapses to a narrow icon strip when no tab is active and expands\n * to at least 64 units when the \"Columns\" or \"Filters\" tab is selected.\n *\n * Wire filter capability by passing `filterDefinitions` and `onFilterChange` to\n * the parent `UITableProvider`.\n *\n * @example\n * ```tsx\n * <UITableProvider\n * filterDefinitions={[\n * { id: 'status', label: 'Status', type: 'tag', options: [{ label: 'Active', value: 'active' }] },\n * { id: 'created', label: 'Created At', type: 'date-range' },\n * { id: 'amount', label: 'Amount', type: 'number' },\n * ]}\n * onFilterChange={filters => console.log(filters)}\n * >\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel><UITable /></ResizablePanel>\n * <ResizableHandle />\n * <UITableFilter />\n * </ResizablePanelGroup>\n * </UITableProvider>\n * ```\n */\nexport const UITableFilter = () => {\n // const { table } = useUITableContext();\n const { filterDefinitions, activeFilters, addFilter, removeFilter, updateFilter } = useUITableFilterContext();\n\n const [tab, setTab] = useState<'columns' | 'filters' | null>(null);\n\n const availableDefinitions = filterDefinitions.filter(def => !activeFilters.some(f => f.definitionId === def.id));\n\n return (\n <ResizablePanel defaultSize={25} className={cn('bg-card', tab === null ? 'max-w-8!' : 'min-w-64')}>\n <div className=\"relative z-20 flex size-full bg-muted-bg-subtle\">\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n {/* Columns tab */}\n {/*<Activity mode={tab === 'columns' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <p className=\"px-2 font-medium\">Columns Visibility</p>\n <Separator />\n <div className=\"flex flex-col gap-4 pt-4\">\n {table.getAllColumns().map(column => {\n if (['select', 'actions'].includes(column.id)) return null;\n return (\n <ColumnVisibility\n key={column.id}\n checked={column.getIsVisible()}\n title={String(column.columnDef.header)}\n onCheckedChange={value => column.toggleVisibility(!!value)}\n />\n );\n })}\n </div>\n </div>\n </Activity>*/}\n\n {/* Filters tab */}\n <Activity mode={tab === 'filters' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <p className=\"font-medium\">Bộ lọc</p>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" color=\"muted\" disabled={availableDefinitions.length === 0}>\n <ListFilterPlus size={13} />\n Thêm bộ lọc\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {availableDefinitions.map(def => (\n <DropdownMenuItem key={def.id} className=\"flex items-center gap-2\" onClick={() => addFilter(def.id)}>\n {TYPE_ICONS[def.type]}\n {def.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <Separator />\n {activeFilters.length === 0 ? (\n <p className=\"py-6 text-center text-xs text-text-positive-muted\">Không có bộ lọc nào</p>\n ) : (\n <div className=\"flex flex-col gap-2 pt-1\">\n {activeFilters.map(filter => {\n const def = filterDefinitions.find(d => d.id === filter.definitionId);\n if (!def) return null;\n return (\n <FilterItem\n key={filter.id}\n filter={filter}\n definition={def}\n onRemove={() => removeFilter(filter.id)}\n onUpdate={value => updateFilter(filter.id, value)}\n />\n );\n })}\n </div>\n )}\n </div>\n </Activity>\n </div>\n\n {/* Vertical tab strip */}\n <div className=\"flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm\">\n {/*<button\n type=\"button\"\n className={cn('flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'columns' && 'bg-card')}\n onClick={() => setTab(tab === 'columns' ? null : 'columns')}\n >\n <Columns4Icon size={18} />\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Columns</span>\n </button>\n <Separator />*/}\n <button\n type=\"button\"\n className={cn('relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'filters' && 'bg-card')}\n onClick={() => setTab(tab === 'filters' ? null : 'filters')}\n >\n <ListFilterIcon size={18} />\n {activeFilters.length > 0 && (\n <span className=\"absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground\">\n {activeFilters.length}\n </span>\n )}\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Bộ lọc</span>\n </button>\n <Separator />\n </div>\n </div>\n </ResizablePanel>\n );\n};\n"],"mappings":"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"}
@@ -8,6 +8,8 @@ type DetailDialogSidebarPanelProps = {
8
8
  content?: React.ReactNode;
9
9
  /** Arbitrary content rendered at the bottom of the sidebar footer. */
10
10
  footer?: React.ReactNode;
11
+ /** Width of the sidebar when expanded. Accepts any valid CSS width (e.g. `'18rem'`, `'320px'`). Defaults to `18rem`. */
12
+ width?: string;
11
13
  };
12
14
  //#endregion
13
15
  //#region packages/components/dialogs/detail-dialog/index.d.ts
@@ -38,7 +40,7 @@ type DetailDialogProps = {
38
40
  * open={open}
39
41
  * title="Order #1234"
40
42
  * createdAt="2024-01-15T09:00:00Z"
41
- * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}
43
+ * sidebar={{ title: 'Navigation', content: <nav>...</nav>, width: '22rem' }}
42
44
  * onOpenChange={setOpen}
43
45
  * >
44
46
  * <p>Detail content goes here.</p>
@@ -48,4 +50,4 @@ type DetailDialogProps = {
48
50
  declare const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>;
49
51
  //#endregion
50
52
  export { DetailDialogProps as n, DetailDialog as t };
51
- //# sourceMappingURL=index-BOifmu0V.d.cts.map
53
+ //# sourceMappingURL=index-BXqx1kOJ.d.cts.map
@@ -8,6 +8,8 @@ type DetailDialogSidebarPanelProps = {
8
8
  content?: React.ReactNode;
9
9
  /** Arbitrary content rendered at the bottom of the sidebar footer. */
10
10
  footer?: React.ReactNode;
11
+ /** Width of the sidebar when expanded. Accepts any valid CSS width (e.g. `'18rem'`, `'320px'`). Defaults to `18rem`. */
12
+ width?: string;
11
13
  };
12
14
  //#endregion
13
15
  //#region packages/components/dialogs/detail-dialog/index.d.ts
@@ -38,7 +40,7 @@ type DetailDialogProps = {
38
40
  * open={open}
39
41
  * title="Order #1234"
40
42
  * createdAt="2024-01-15T09:00:00Z"
41
- * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}
43
+ * sidebar={{ title: 'Navigation', content: <nav>...</nav>, width: '22rem' }}
42
44
  * onOpenChange={setOpen}
43
45
  * >
44
46
  * <p>Detail content goes here.</p>
@@ -48,4 +50,4 @@ type DetailDialogProps = {
48
50
  declare const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>;
49
51
  //#endregion
50
52
  export { DetailDialogProps as n, DetailDialog as t };
51
- //# sourceMappingURL=index-BOifmu0V.d.mts.map
53
+ //# sourceMappingURL=index-BXqx1kOJ.d.mts.map
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),ee=require("./ui/skeleton.cjs"),te=require("./ui/image.cjs"),ne=require("./cards/grid-product-card.cjs"),re=require("./cards/product-card.cjs"),ie=require("./cards/simple-card.cjs"),ae=require("./layouts/flex.cjs"),oe=require("./data-display/country.cjs"),r=require("./data-display/data-list.cjs"),se=require("./date-B3cozmfV.cjs"),i=require("./ui/badge.cjs"),a=require("./ui/tooltip.cjs"),ce=require("./data-display/date-tooltip.cjs"),le=require("./data-display/empty.cjs"),ue=require("./data-display/name.cjs"),de=require("./data-display/phone-number.cjs"),fe=require("./data-display/role-badge.cjs"),o=require("./data-display/statistic.cjs"),s=require("./ui/avatar.cjs"),pe=require("./data-display/user.cjs"),c=require("./ui/alert-dialog.cjs"),me=require("./dialogs/confirm-dialog.cjs"),he=require("./detail-dialog-uN5mrCa7.cjs"),ge=require("./typography/title.cjs"),_e=require("./dialogs/error-dialog.cjs"),l=require("./ui/dialog.cjs"),ve=require("./dialogs/loading-dialog.cjs"),u=require("./features/charts/index.cjs"),d=require("./features/descriptions/index.cjs"),f=require("./ui/command.cjs"),ye=require("./search-modal-CMhsIxae.cjs"),p=require("./tables-078i-X0d.cjs"),be=require("./ui/checkbox.cjs"),m=require("./ui/dropdown-menu.cjs"),xe=require("./ui/spinner.cjs"),h=require("./ui/resizable.cjs"),g=require("./tanstack-form-BxqS40rB.cjs"),_=require("./ui/popover.cjs"),v=require("./text-editor-BtfyZSgR.cjs"),Se=require("./ui/input.cjs"),Ce=require("./ui/separator.cjs"),we=require("./cms-layout-DCJhB-GY.cjs"),y=require("./ui/sheet.cjs"),b=require("./payment-layout-DDcLanA0.cjs"),x=require("./layouts/grid.cjs"),S=require("./pages/FeatureDeveloping.cjs"),C=require("./pages/FeatureFixing.cjs"),w=require("./pages/NotAuthorized.cjs"),T=require("./pages/NotFound.cjs"),E=require("./alert-D31c6DLq.cjs"),D=require("./ui/label.cjs"),O=require("./pages/LoginPage.cjs"),k=require("./pages/RegisterPage.cjs"),A=require("./ui/input-otp.cjs"),Te=require("./pages/VerifyEmailPage.cjs"),Ee=require("./systems/google.cjs"),De=require("./ui/buttons/add-new.cjs"),Oe=require("./ui/buttons/edit.cjs"),ke=require("./ui/buttons/refresh.cjs"),Ae=require("./ui/buttons/trash.cjs"),je=require("./ui/buttons/upload-image.cjs"),Me=require("./ui/inputs/search-input.cjs"),Ne=require("./ui/aspect-ratio.cjs"),j=require("./ui/breadcrumb.cjs"),M=require("./ui/button-group.cjs"),N=require("./ui/calendar.cjs"),P=require("./ui/carousel.cjs"),F=require("./ui/chart.cjs"),I=require("./ui/collapsible.cjs"),Pe=require("./combobox-kp_kPY8o.cjs"),L=require("./ui/context-menu.cjs"),R=require("./ui/drawer.cjs"),z=require("./ui/empty.cjs"),Fe=require("./ui/progress.cjs"),Ie=require("./ui/file-uploader.cjs"),B=require("./ui/form.cjs"),V=require("./ui/hover-card.cjs"),H=require("./ui/item.cjs"),U=require("./ui/menubar.cjs"),W=require("./ui/multi-select.cjs"),G=require("./ui/navigation-menu.cjs"),K=require("./ui/pagination.cjs"),q=require("./ui/radio-group.cjs"),J=require("./ui/scroll-area.cjs"),Y=require("./ui/select.cjs"),Le=require("./ui/slider.cjs"),Re=require("./ui/sonner.cjs"),ze=require("./ui/switch.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Be=require("./ui/textarea.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Ve=require("sonner");exports.ActivityHeatmapChart=u.ActivityHeatmapChart,exports.AddNewBtn=De.AddNewBtn,exports.Alert=E.t,exports.AlertDescription=E.n,exports.AlertDialog=c.AlertDialog,exports.AlertDialogAction=c.AlertDialogAction,exports.AlertDialogCancel=c.AlertDialogCancel,exports.AlertDialogContent=c.AlertDialogContent,exports.AlertDialogDescription=c.AlertDialogDescription,exports.AlertDialogFooter=c.AlertDialogFooter,exports.AlertDialogHeader=c.AlertDialogHeader,exports.AlertDialogOverlay=c.AlertDialogOverlay,exports.AlertDialogPortal=c.AlertDialogPortal,exports.AlertDialogTitle=c.AlertDialogTitle,exports.AlertDialogTrigger=c.AlertDialogTrigger,exports.AlertTitle=E.r,exports.ArrayCol=g.t,exports.ArrayHeaderRow=g.n,exports.AspectRatio=Ne.AspectRatio,exports.Avatar=s.Avatar,exports.AvatarFallback=s.AvatarFallback,exports.AvatarImage=s.AvatarImage,exports.Badge=i.Badge,exports.Breadcrumb=j.Breadcrumb,exports.BreadcrumbEllipsis=j.BreadcrumbEllipsis,exports.BreadcrumbItem=j.BreadcrumbItem,exports.BreadcrumbLink=j.BreadcrumbLink,exports.BreadcrumbList=j.BreadcrumbList,exports.BreadcrumbPage=j.BreadcrumbPage,exports.BreadcrumbSeparator=j.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=M.ButtonGroup,exports.ButtonGroupSeparator=M.ButtonGroupSeparator,exports.ButtonGroupText=M.ButtonGroupText,exports.CMSLayout=we.t,exports.Calendar=N.Calendar,exports.CalendarDayButton=N.CalendarDayButton,exports.CandlestickChart=u.CandlestickChart,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=P.Carousel,exports.CarouselContent=P.CarouselContent,exports.CarouselItem=P.CarouselItem,exports.CarouselNext=P.CarouselNext,exports.CarouselPrevious=P.CarouselPrevious,exports.ChartContainer=F.ChartContainer,exports.ChartLegend=F.ChartLegend,exports.ChartLegendContent=F.ChartLegendContent,exports.ChartStyle=F.ChartStyle,exports.ChartTooltip=F.ChartTooltip,exports.ChartTooltipContent=F.ChartTooltipContent,exports.Checkbox=be.Checkbox,exports.CheckboxField=g.r,exports.Collapsible=I.Collapsible,exports.CollapsibleContent=I.CollapsibleContent,exports.CollapsibleTrigger=I.CollapsibleTrigger,exports.Combobox=Pe.t,exports.ComboboxField=g.i,exports.Command=f.Command,exports.CommandDialog=f.CommandDialog,exports.CommandEmpty=f.CommandEmpty,exports.CommandGroup=f.CommandGroup,exports.CommandInput=f.CommandInput,exports.CommandItem=f.CommandItem,exports.CommandList=f.CommandList,exports.CommandSeparator=f.CommandSeparator,exports.CommandShortcut=f.CommandShortcut,exports.ConfirmDialog=me.ConfirmDialog,exports.ContextMenu=L.ContextMenu,exports.ContextMenuCheckboxItem=L.ContextMenuCheckboxItem,exports.ContextMenuContent=L.ContextMenuContent,exports.ContextMenuGroup=L.ContextMenuGroup,exports.ContextMenuItem=L.ContextMenuItem,exports.ContextMenuLabel=L.ContextMenuLabel,exports.ContextMenuPortal=L.ContextMenuPortal,exports.ContextMenuRadioGroup=L.ContextMenuRadioGroup,exports.ContextMenuRadioItem=L.ContextMenuRadioItem,exports.ContextMenuSeparator=L.ContextMenuSeparator,exports.ContextMenuShortcut=L.ContextMenuShortcut,exports.ContextMenuSub=L.ContextMenuSub,exports.ContextMenuSubContent=L.ContextMenuSubContent,exports.ContextMenuSubTrigger=L.ContextMenuSubTrigger,exports.ContextMenuTrigger=L.ContextMenuTrigger,exports.ConversionFunnelChart=u.ConversionFunnelChart,exports.CorrelationScatterChart=u.CorrelationScatterChart,exports.CountryDisplay=oe.CountryDisplay,exports.DataList=r.DataList,exports.DataListItem=r.DataListItem,exports.DateDisplay=se.t,exports.DateField=g.a,exports.DateTooltip=ce.DateTooltip,exports.Description=d.Description,exports.DescriptionBadge=d.DescriptionBadge,exports.DescriptionBoolean=d.DescriptionBoolean,exports.DescriptionCopy=d.DescriptionCopy,exports.DescriptionDate=d.DescriptionDate,exports.DescriptionEmpty=d.DescriptionEmpty,exports.DescriptionHeader=d.DescriptionHeader,exports.DescriptionImages=d.DescriptionImages,exports.DescriptionItem=d.DescriptionItem,exports.DescriptionLink=d.DescriptionLink,exports.DescriptionLongText=d.DescriptionLongText,exports.DescriptionName=d.DescriptionName,exports.DescriptionNumberPhone=d.DescriptionNumberPhone,exports.DescriptionSection=d.DescriptionSection,exports.DescriptionStatistic=d.DescriptionStatistic,exports.DescriptionStatus=d.DescriptionStatus,exports.DescriptionTagList=d.DescriptionTagList,exports.DescriptionUser=d.DescriptionUser,exports.DetailDialog=he.t,exports.Dialog=l.Dialog,exports.DialogClose=l.DialogClose,exports.DialogContent=l.DialogContent,exports.DialogDescription=l.DialogDescription,exports.DialogFooter=l.DialogFooter,exports.DialogHeader=l.DialogHeader,exports.DialogOverlay=l.DialogOverlay,exports.DialogPortal=l.DialogPortal,exports.DialogTitle=l.DialogTitle,exports.DialogTrigger=l.DialogTrigger,exports.DonutChart=u.DonutChart,exports.Drawer=R.Drawer,exports.DrawerClose=R.DrawerClose,exports.DrawerContent=R.DrawerContent,exports.DrawerDescription=R.DrawerDescription,exports.DrawerFooter=R.DrawerFooter,exports.DrawerHeader=R.DrawerHeader,exports.DrawerOverlay=R.DrawerOverlay,exports.DrawerPortal=R.DrawerPortal,exports.DrawerTitle=R.DrawerTitle,exports.DrawerTrigger=R.DrawerTrigger,exports.DropdownMenu=m.DropdownMenu,exports.DropdownMenuCheckboxItem=m.DropdownMenuCheckboxItem,exports.DropdownMenuContent=m.DropdownMenuContent,exports.DropdownMenuGroup=m.DropdownMenuGroup,exports.DropdownMenuItem=m.DropdownMenuItem,exports.DropdownMenuLabel=m.DropdownMenuLabel,exports.DropdownMenuPortal=m.DropdownMenuPortal,exports.DropdownMenuRadioGroup=m.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=m.DropdownMenuRadioItem,exports.DropdownMenuSeparator=m.DropdownMenuSeparator,exports.DropdownMenuShortcut=m.DropdownMenuShortcut,exports.DropdownMenuSub=m.DropdownMenuSub,exports.DropdownMenuSubContent=m.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=m.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=m.DropdownMenuTrigger,exports.EditBtn=Oe.EditBtn,exports.EmailField=g.o,exports.Empty=z.Empty,exports.EmptyContent=z.EmptyContent,exports.EmptyDescription=z.EmptyDescription,exports.EmptyDisplay=le.EmptyDisplay,exports.EmptyHeader=z.EmptyHeader,exports.EmptyMedia=z.EmptyMedia,exports.EmptyTitle=z.EmptyTitle,exports.ErrorDialog=_e.ErrorDialog,exports.FeatureDeveloping=S.FeatureDeveloping,exports.FeatureFixing=C.FeatureFixing,exports.Field=g.s,exports.FieldContent=g.c,exports.FieldContentMain=g.l,exports.FieldError=g.u,exports.FieldGroup=g.d,exports.FieldLabel=g.f,exports.FieldSeparator=g.p,exports.FileUploader=Ie.FileUploader,exports.Flex=ae.Flex,exports.Form=B.Form,exports.FormControl=B.FormControl,exports.FormDescription=B.FormDescription,exports.FormField=B.FormField,exports.FormItem=B.FormItem,exports.FormLabel=B.FormLabel,exports.FormMessage=B.FormMessage,exports.GainLossBarChart=u.GainLossBarChart,exports.Google=Ee.Google,exports.Grid=x.Grid,exports.GridProductCard=ne.GridProductCard,exports.HoverCard=V.HoverCard,exports.HoverCardContent=V.HoverCardContent,exports.HoverCardTrigger=V.HoverCardTrigger,exports.Image=te.Image,exports.IndexedPerformanceLineChart=u.IndexedPerformanceLineChart,exports.Input=Se.Input,exports.InputOTP=A.InputOTP,exports.InputOTPGroup=A.InputOTPGroup,exports.InputOTPSeparator=A.InputOTPSeparator,exports.InputOTPSlot=A.InputOTPSlot,exports.Item=H.Item,exports.ItemActions=H.ItemActions,exports.ItemContent=H.ItemContent,exports.ItemDescription=H.ItemDescription,exports.ItemFooter=H.ItemFooter,exports.ItemGroup=H.ItemGroup,exports.ItemHeader=H.ItemHeader,exports.ItemMedia=H.ItemMedia,exports.ItemSeparator=H.ItemSeparator,exports.ItemTitle=H.ItemTitle,exports.Label=D.Label,exports.LoadingDialog=ve.LoadingDialog,exports.LoginPage=O.LoginPage,exports.Menubar=U.Menubar,exports.MenubarCheckboxItem=U.MenubarCheckboxItem,exports.MenubarContent=U.MenubarContent,exports.MenubarGroup=U.MenubarGroup,exports.MenubarItem=U.MenubarItem,exports.MenubarLabel=U.MenubarLabel,exports.MenubarMenu=U.MenubarMenu,exports.MenubarPortal=U.MenubarPortal,exports.MenubarRadioGroup=U.MenubarRadioGroup,exports.MenubarRadioItem=U.MenubarRadioItem,exports.MenubarSeparator=U.MenubarSeparator,exports.MenubarShortcut=U.MenubarShortcut,exports.MenubarSub=U.MenubarSub,exports.MenubarSubContent=U.MenubarSubContent,exports.MenubarSubTrigger=U.MenubarSubTrigger,exports.MenubarTrigger=U.MenubarTrigger,exports.MetricRadarChart=u.MetricRadarChart,exports.MirroredBarChart=u.MirroredBarChart,exports.MultipleSelector=W.MultipleSelector,exports.NameDisplay=ue.NameDisplay,exports.NavigationMenu=G.NavigationMenu,exports.NavigationMenuContent=G.NavigationMenuContent,exports.NavigationMenuIndicator=G.NavigationMenuIndicator,exports.NavigationMenuItem=G.NavigationMenuItem,exports.NavigationMenuLink=G.NavigationMenuLink,exports.NavigationMenuList=G.NavigationMenuList,exports.NavigationMenuTrigger=G.NavigationMenuTrigger,exports.NavigationMenuViewport=G.NavigationMenuViewport,exports.NotAuthorized=w.NotAuthorized,exports.NotFound=T.NotFound,exports.NumberField=g.m,exports.OrdersBarChart=u.OrdersBarChart,exports.Pagination=K.Pagination,exports.PaginationContent=K.PaginationContent,exports.PaginationEllipsis=K.PaginationEllipsis,exports.PaginationItem=K.PaginationItem,exports.PaginationLink=K.PaginationLink,exports.PaginationNext=K.PaginationNext,exports.PaginationPrevious=K.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=g.h,exports.PaymentLayout=b.t,exports.PhoneNumberDisplay=de.PhoneNumberDisplay,exports.Popover=_.Popover,exports.PopoverAnchor=_.PopoverAnchor,exports.PopoverClose=_.PopoverClose,exports.PopoverContent=_.PopoverContent,exports.PopoverTrigger=_.PopoverTrigger,exports.PortfolioAllocationTreemap=u.PortfolioAllocationTreemap,exports.PriceRangeAreaChart=u.PriceRangeAreaChart,exports.ProductCard=re.ProductCard,exports.Progress=Fe.Progress,exports.RadioGroup=q.RadioGroup,exports.RadioGroupField=g.g,exports.RadioGroupItem=q.RadioGroupItem,exports.RefreshBtn=ke.RefreshBtn,exports.RegisterPage=k.RegisterPage,exports.ResizableHandle=h.ResizableHandle,exports.ResizablePanel=h.ResizablePanel,exports.ResizablePanelGroup=h.ResizablePanelGroup,exports.RevenueAreaChart=u.RevenueAreaChart,exports.RevenueOrdersComposedChart=u.RevenueOrdersComposedChart,exports.RoleBadge=fe.RoleBadge,exports.SalesTargetRadialChart=u.SalesTargetRadialChart,exports.SankeyFlowChart=u.SankeyFlowChart,exports.ScrollArea=J.ScrollArea,exports.ScrollBar=J.ScrollBar,exports.SearchInput=Me.SearchInput,exports.SearchModal=ye.t,exports.Select=Y.Select,exports.SelectContent=Y.SelectContent,exports.SelectField=g._,exports.SelectGroup=Y.SelectGroup,exports.SelectItem=Y.SelectItem,exports.SelectLabel=Y.SelectLabel,exports.SelectSeparator=Y.SelectSeparator,exports.SelectTrigger=Y.SelectTrigger,exports.SelectValue=Y.SelectValue,exports.Separator=Ce.Separator,exports.Sheet=y.Sheet,exports.SheetClose=y.SheetClose,exports.SheetContent=y.SheetContent,exports.SheetDescription=y.SheetDescription,exports.SheetFooter=y.SheetFooter,exports.SheetHeader=y.SheetHeader,exports.SheetTitle=y.SheetTitle,exports.SheetTrigger=y.SheetTrigger,exports.SimpleArrayField=g.v,exports.SimpleBooleanField=g.y,exports.SimpleCard=ie.SimpleCard,exports.SimpleComboboxField=g.b,exports.SimpleDateField=g.x,exports.SimpleEmailField=g.S,exports.SimpleNumberField=g.C,exports.SimplePasswordField=g.w,exports.SimpleRadioGroupField=g.T,exports.SimpleSelectField=g.E,exports.SimpleTextField=g.D,exports.SimpleTextareaField=g.O,exports.Skeleton=ee.Skeleton,exports.Slider=Le.Slider,exports.SparklineChart=u.SparklineChart,exports.Spinner=xe.Spinner,exports.StackedAreaChart=u.StackedAreaChart,exports.Statistic=o.Statistic,exports.Switch=ze.Switch,exports.SwitchField=g.k,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=g.A,exports.TanStackActionsForm=g.j,exports.TanStackCardForm=g.M,exports.TanStackContainerForm=g.N,exports.TanStackDialogForm=g.P,exports.TanStackFieldGroup=g.F,exports.TanStackPopoverForm=g.I,exports.TanStackSectionForm=g.L,exports.TanStackTitleField=g.R,exports.TextEditor=v.t,exports.TextEditorField=g.z,exports.TextEditorToolbar=v.n,exports.TextField=g.B,exports.Textarea=Be.Textarea,exports.TextareaField=g.V,exports.Title=ge.Title,exports.Toaster=Re.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=a.Tooltip,exports.TooltipContent=a.TooltipContent,exports.TooltipProvider=a.TooltipProvider,exports.TooltipTrigger=a.TooltipTrigger,exports.TopProductsBarChart=u.TopProductsBarChart,exports.TrashBtn=Ae.TrashBtn,exports.UITableAnalysisPanel=p.t,exports.UITableAvatarNameDisplay=p.n,exports.UITableBadgeDisplay=p.r,exports.UITableBody=p.K,exports.UITableBooleanDisplay=p.i,exports.UITableCell=p.G,exports.UITableCellActions=p.W,exports.UITableCellSelect=p.U,exports.UITableContainer=p.D,exports.UITableCurrencyDisplay=p.a,exports.UITableDateDisplay=p.o,exports.UITableDescriptionDisplay=p.s,exports.UITableEditButton=p.c,exports.UITableEmailDisplay=p.l,exports.UITableEmpty=p.Q,exports.UITableEmptyDisplay=p.H,exports.UITableFilter=p.u,exports.UITableFooter=p.V,exports.UITableFooterRow=p.R,exports.UITableHead=p.L,exports.UITableHeadCell=p.F,exports.UITableHeadCellOption=p.I,exports.UITableHeadCellSelect=p.P,exports.UITableHeadRow=p.N,exports.UITableInnerTable=p.M,exports.UITableInnerWrapper=p.j,exports.UITableListDisplay=p.d,exports.UITableLoadMore=p.A,exports.UITableMoreButton=p.f,exports.UITableNameDisplay=p.p,exports.UITablePermalink=p.m,exports.UITablePhoneNumberDisplay=p.h,exports.UITableProgressDisplay=p.g,exports.UITableProvider=p.E,exports.UITableRemoveButton=p._,exports.UITableRow=p.k,exports.UITableStatisticDisplay=p.v,exports.UITableStatusDisplay=p.y,exports.UITableSummaryBar=p.b,exports.UITableToggleButton=p.x,exports.UITableTooltip=p.S,exports.UITableTooltipActions=p.C,exports.UITableTooltipFilter=p.w,exports.UITableUserDataDisplay=p.T,exports.UITableWrapper=p.O,exports.UploadImageBtn=je.UploadImageBtn,exports.UserDataDisplay=pe.UserDataDisplay,exports.VerifyEmailPage=Te.VerifyEmailPage,exports.VolumeBarChart=u.VolumeBarChart,exports.WaterfallChart=u.WaterfallChart,exports.badgeVariants=i.badgeVariants,exports.buttonGroupVariants=M.buttonGroupVariants,exports.computeIndexedSeries=u.computeIndexedSeries,exports.formatCompactNumber=u.formatCompactNumber,exports.formatCurrency=u.formatCurrency,exports.formatPercent=u.formatPercent,exports.formatSignedPercent=u.formatSignedPercent,exports.getChartColor=u.getChartColor,exports.getDirectionColor=u.getDirectionColor,exports.navigationMenuTriggerStyle=G.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toDateLabel=u.toDateLabel,exports.toast=Ve.toast,exports.toggleVariants=Q.toggleVariants,exports.useChart=F.useChart,exports.useDebounce=W.useDebounce,exports.useFormField=B.useFormField,exports.useTanStackFieldContext=g.G,exports.useTanStackForm=g.H,exports.useTanStackFormContext=g.K,exports.withTanStackFieldGroup=g.U,exports.withTanStackForm=g.W;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),ee=require("./ui/skeleton.cjs"),te=require("./ui/image.cjs"),ne=require("./cards/grid-product-card.cjs"),re=require("./cards/product-card.cjs"),ie=require("./cards/simple-card.cjs"),ae=require("./layouts/flex.cjs"),oe=require("./data-display/country.cjs"),r=require("./data-display/data-list.cjs"),se=require("./date-B3cozmfV.cjs"),i=require("./ui/badge.cjs"),a=require("./ui/tooltip.cjs"),ce=require("./data-display/date-tooltip.cjs"),le=require("./data-display/empty.cjs"),ue=require("./data-display/name.cjs"),de=require("./data-display/phone-number.cjs"),fe=require("./data-display/role-badge.cjs"),o=require("./data-display/statistic.cjs"),s=require("./ui/avatar.cjs"),pe=require("./data-display/user.cjs"),c=require("./ui/alert-dialog.cjs"),me=require("./dialogs/confirm-dialog.cjs"),he=require("./detail-dialog-BCM0iEXQ.cjs"),ge=require("./typography/title.cjs"),_e=require("./dialogs/error-dialog.cjs"),l=require("./ui/dialog.cjs"),ve=require("./dialogs/loading-dialog.cjs"),u=require("./features/charts/index.cjs"),d=require("./features/descriptions/index.cjs"),f=require("./ui/command.cjs"),ye=require("./search-modal-CMhsIxae.cjs"),p=require("./tables-CS3NhgTc.cjs"),be=require("./ui/checkbox.cjs"),m=require("./ui/dropdown-menu.cjs"),xe=require("./ui/spinner.cjs"),h=require("./ui/resizable.cjs"),g=require("./tanstack-form-BxqS40rB.cjs"),_=require("./ui/popover.cjs"),v=require("./text-editor-BtfyZSgR.cjs"),Se=require("./ui/input.cjs"),Ce=require("./ui/separator.cjs"),we=require("./cms-layout-DCJhB-GY.cjs"),y=require("./ui/sheet.cjs"),b=require("./payment-layout-DDcLanA0.cjs"),x=require("./layouts/grid.cjs"),S=require("./pages/FeatureDeveloping.cjs"),C=require("./pages/FeatureFixing.cjs"),w=require("./pages/NotAuthorized.cjs"),T=require("./pages/NotFound.cjs"),E=require("./alert-D31c6DLq.cjs"),D=require("./ui/label.cjs"),O=require("./pages/LoginPage.cjs"),k=require("./pages/RegisterPage.cjs"),A=require("./ui/input-otp.cjs"),Te=require("./pages/VerifyEmailPage.cjs"),Ee=require("./systems/google.cjs"),De=require("./ui/buttons/add-new.cjs"),Oe=require("./ui/buttons/edit.cjs"),ke=require("./ui/buttons/refresh.cjs"),Ae=require("./ui/buttons/trash.cjs"),je=require("./ui/buttons/upload-image.cjs"),Me=require("./ui/inputs/search-input.cjs"),Ne=require("./ui/aspect-ratio.cjs"),j=require("./ui/breadcrumb.cjs"),M=require("./ui/button-group.cjs"),N=require("./ui/calendar.cjs"),P=require("./ui/carousel.cjs"),F=require("./ui/chart.cjs"),I=require("./ui/collapsible.cjs"),Pe=require("./combobox-kp_kPY8o.cjs"),L=require("./ui/context-menu.cjs"),R=require("./ui/drawer.cjs"),z=require("./ui/empty.cjs"),Fe=require("./ui/progress.cjs"),Ie=require("./ui/file-uploader.cjs"),B=require("./ui/form.cjs"),V=require("./ui/hover-card.cjs"),H=require("./ui/item.cjs"),U=require("./ui/menubar.cjs"),W=require("./ui/multi-select.cjs"),G=require("./ui/navigation-menu.cjs"),K=require("./ui/pagination.cjs"),q=require("./ui/radio-group.cjs"),J=require("./ui/scroll-area.cjs"),Y=require("./ui/select.cjs"),Le=require("./ui/slider.cjs"),Re=require("./ui/sonner.cjs"),ze=require("./ui/switch.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Be=require("./ui/textarea.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Ve=require("sonner");exports.ActivityHeatmapChart=u.ActivityHeatmapChart,exports.AddNewBtn=De.AddNewBtn,exports.Alert=E.t,exports.AlertDescription=E.n,exports.AlertDialog=c.AlertDialog,exports.AlertDialogAction=c.AlertDialogAction,exports.AlertDialogCancel=c.AlertDialogCancel,exports.AlertDialogContent=c.AlertDialogContent,exports.AlertDialogDescription=c.AlertDialogDescription,exports.AlertDialogFooter=c.AlertDialogFooter,exports.AlertDialogHeader=c.AlertDialogHeader,exports.AlertDialogOverlay=c.AlertDialogOverlay,exports.AlertDialogPortal=c.AlertDialogPortal,exports.AlertDialogTitle=c.AlertDialogTitle,exports.AlertDialogTrigger=c.AlertDialogTrigger,exports.AlertTitle=E.r,exports.ArrayCol=g.t,exports.ArrayHeaderRow=g.n,exports.AspectRatio=Ne.AspectRatio,exports.Avatar=s.Avatar,exports.AvatarFallback=s.AvatarFallback,exports.AvatarImage=s.AvatarImage,exports.Badge=i.Badge,exports.Breadcrumb=j.Breadcrumb,exports.BreadcrumbEllipsis=j.BreadcrumbEllipsis,exports.BreadcrumbItem=j.BreadcrumbItem,exports.BreadcrumbLink=j.BreadcrumbLink,exports.BreadcrumbList=j.BreadcrumbList,exports.BreadcrumbPage=j.BreadcrumbPage,exports.BreadcrumbSeparator=j.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=M.ButtonGroup,exports.ButtonGroupSeparator=M.ButtonGroupSeparator,exports.ButtonGroupText=M.ButtonGroupText,exports.CMSLayout=we.t,exports.Calendar=N.Calendar,exports.CalendarDayButton=N.CalendarDayButton,exports.CandlestickChart=u.CandlestickChart,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=P.Carousel,exports.CarouselContent=P.CarouselContent,exports.CarouselItem=P.CarouselItem,exports.CarouselNext=P.CarouselNext,exports.CarouselPrevious=P.CarouselPrevious,exports.ChartContainer=F.ChartContainer,exports.ChartLegend=F.ChartLegend,exports.ChartLegendContent=F.ChartLegendContent,exports.ChartStyle=F.ChartStyle,exports.ChartTooltip=F.ChartTooltip,exports.ChartTooltipContent=F.ChartTooltipContent,exports.Checkbox=be.Checkbox,exports.CheckboxField=g.r,exports.Collapsible=I.Collapsible,exports.CollapsibleContent=I.CollapsibleContent,exports.CollapsibleTrigger=I.CollapsibleTrigger,exports.Combobox=Pe.t,exports.ComboboxField=g.i,exports.Command=f.Command,exports.CommandDialog=f.CommandDialog,exports.CommandEmpty=f.CommandEmpty,exports.CommandGroup=f.CommandGroup,exports.CommandInput=f.CommandInput,exports.CommandItem=f.CommandItem,exports.CommandList=f.CommandList,exports.CommandSeparator=f.CommandSeparator,exports.CommandShortcut=f.CommandShortcut,exports.ConfirmDialog=me.ConfirmDialog,exports.ContextMenu=L.ContextMenu,exports.ContextMenuCheckboxItem=L.ContextMenuCheckboxItem,exports.ContextMenuContent=L.ContextMenuContent,exports.ContextMenuGroup=L.ContextMenuGroup,exports.ContextMenuItem=L.ContextMenuItem,exports.ContextMenuLabel=L.ContextMenuLabel,exports.ContextMenuPortal=L.ContextMenuPortal,exports.ContextMenuRadioGroup=L.ContextMenuRadioGroup,exports.ContextMenuRadioItem=L.ContextMenuRadioItem,exports.ContextMenuSeparator=L.ContextMenuSeparator,exports.ContextMenuShortcut=L.ContextMenuShortcut,exports.ContextMenuSub=L.ContextMenuSub,exports.ContextMenuSubContent=L.ContextMenuSubContent,exports.ContextMenuSubTrigger=L.ContextMenuSubTrigger,exports.ContextMenuTrigger=L.ContextMenuTrigger,exports.ConversionFunnelChart=u.ConversionFunnelChart,exports.CorrelationScatterChart=u.CorrelationScatterChart,exports.CountryDisplay=oe.CountryDisplay,exports.DataList=r.DataList,exports.DataListItem=r.DataListItem,exports.DateDisplay=se.t,exports.DateField=g.a,exports.DateTooltip=ce.DateTooltip,exports.Description=d.Description,exports.DescriptionBadge=d.DescriptionBadge,exports.DescriptionBoolean=d.DescriptionBoolean,exports.DescriptionCopy=d.DescriptionCopy,exports.DescriptionDate=d.DescriptionDate,exports.DescriptionEmpty=d.DescriptionEmpty,exports.DescriptionHeader=d.DescriptionHeader,exports.DescriptionImages=d.DescriptionImages,exports.DescriptionItem=d.DescriptionItem,exports.DescriptionLink=d.DescriptionLink,exports.DescriptionLongText=d.DescriptionLongText,exports.DescriptionName=d.DescriptionName,exports.DescriptionNumberPhone=d.DescriptionNumberPhone,exports.DescriptionSection=d.DescriptionSection,exports.DescriptionStatistic=d.DescriptionStatistic,exports.DescriptionStatus=d.DescriptionStatus,exports.DescriptionTagList=d.DescriptionTagList,exports.DescriptionUser=d.DescriptionUser,exports.DetailDialog=he.t,exports.Dialog=l.Dialog,exports.DialogClose=l.DialogClose,exports.DialogContent=l.DialogContent,exports.DialogDescription=l.DialogDescription,exports.DialogFooter=l.DialogFooter,exports.DialogHeader=l.DialogHeader,exports.DialogOverlay=l.DialogOverlay,exports.DialogPortal=l.DialogPortal,exports.DialogTitle=l.DialogTitle,exports.DialogTrigger=l.DialogTrigger,exports.DonutChart=u.DonutChart,exports.Drawer=R.Drawer,exports.DrawerClose=R.DrawerClose,exports.DrawerContent=R.DrawerContent,exports.DrawerDescription=R.DrawerDescription,exports.DrawerFooter=R.DrawerFooter,exports.DrawerHeader=R.DrawerHeader,exports.DrawerOverlay=R.DrawerOverlay,exports.DrawerPortal=R.DrawerPortal,exports.DrawerTitle=R.DrawerTitle,exports.DrawerTrigger=R.DrawerTrigger,exports.DropdownMenu=m.DropdownMenu,exports.DropdownMenuCheckboxItem=m.DropdownMenuCheckboxItem,exports.DropdownMenuContent=m.DropdownMenuContent,exports.DropdownMenuGroup=m.DropdownMenuGroup,exports.DropdownMenuItem=m.DropdownMenuItem,exports.DropdownMenuLabel=m.DropdownMenuLabel,exports.DropdownMenuPortal=m.DropdownMenuPortal,exports.DropdownMenuRadioGroup=m.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=m.DropdownMenuRadioItem,exports.DropdownMenuSeparator=m.DropdownMenuSeparator,exports.DropdownMenuShortcut=m.DropdownMenuShortcut,exports.DropdownMenuSub=m.DropdownMenuSub,exports.DropdownMenuSubContent=m.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=m.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=m.DropdownMenuTrigger,exports.EditBtn=Oe.EditBtn,exports.EmailField=g.o,exports.Empty=z.Empty,exports.EmptyContent=z.EmptyContent,exports.EmptyDescription=z.EmptyDescription,exports.EmptyDisplay=le.EmptyDisplay,exports.EmptyHeader=z.EmptyHeader,exports.EmptyMedia=z.EmptyMedia,exports.EmptyTitle=z.EmptyTitle,exports.ErrorDialog=_e.ErrorDialog,exports.FeatureDeveloping=S.FeatureDeveloping,exports.FeatureFixing=C.FeatureFixing,exports.Field=g.s,exports.FieldContent=g.c,exports.FieldContentMain=g.l,exports.FieldError=g.u,exports.FieldGroup=g.d,exports.FieldLabel=g.f,exports.FieldSeparator=g.p,exports.FileUploader=Ie.FileUploader,exports.Flex=ae.Flex,exports.Form=B.Form,exports.FormControl=B.FormControl,exports.FormDescription=B.FormDescription,exports.FormField=B.FormField,exports.FormItem=B.FormItem,exports.FormLabel=B.FormLabel,exports.FormMessage=B.FormMessage,exports.GainLossBarChart=u.GainLossBarChart,exports.Google=Ee.Google,exports.Grid=x.Grid,exports.GridProductCard=ne.GridProductCard,exports.HoverCard=V.HoverCard,exports.HoverCardContent=V.HoverCardContent,exports.HoverCardTrigger=V.HoverCardTrigger,exports.Image=te.Image,exports.IndexedPerformanceLineChart=u.IndexedPerformanceLineChart,exports.Input=Se.Input,exports.InputOTP=A.InputOTP,exports.InputOTPGroup=A.InputOTPGroup,exports.InputOTPSeparator=A.InputOTPSeparator,exports.InputOTPSlot=A.InputOTPSlot,exports.Item=H.Item,exports.ItemActions=H.ItemActions,exports.ItemContent=H.ItemContent,exports.ItemDescription=H.ItemDescription,exports.ItemFooter=H.ItemFooter,exports.ItemGroup=H.ItemGroup,exports.ItemHeader=H.ItemHeader,exports.ItemMedia=H.ItemMedia,exports.ItemSeparator=H.ItemSeparator,exports.ItemTitle=H.ItemTitle,exports.Label=D.Label,exports.LoadingDialog=ve.LoadingDialog,exports.LoginPage=O.LoginPage,exports.Menubar=U.Menubar,exports.MenubarCheckboxItem=U.MenubarCheckboxItem,exports.MenubarContent=U.MenubarContent,exports.MenubarGroup=U.MenubarGroup,exports.MenubarItem=U.MenubarItem,exports.MenubarLabel=U.MenubarLabel,exports.MenubarMenu=U.MenubarMenu,exports.MenubarPortal=U.MenubarPortal,exports.MenubarRadioGroup=U.MenubarRadioGroup,exports.MenubarRadioItem=U.MenubarRadioItem,exports.MenubarSeparator=U.MenubarSeparator,exports.MenubarShortcut=U.MenubarShortcut,exports.MenubarSub=U.MenubarSub,exports.MenubarSubContent=U.MenubarSubContent,exports.MenubarSubTrigger=U.MenubarSubTrigger,exports.MenubarTrigger=U.MenubarTrigger,exports.MetricRadarChart=u.MetricRadarChart,exports.MirroredBarChart=u.MirroredBarChart,exports.MultipleSelector=W.MultipleSelector,exports.NameDisplay=ue.NameDisplay,exports.NavigationMenu=G.NavigationMenu,exports.NavigationMenuContent=G.NavigationMenuContent,exports.NavigationMenuIndicator=G.NavigationMenuIndicator,exports.NavigationMenuItem=G.NavigationMenuItem,exports.NavigationMenuLink=G.NavigationMenuLink,exports.NavigationMenuList=G.NavigationMenuList,exports.NavigationMenuTrigger=G.NavigationMenuTrigger,exports.NavigationMenuViewport=G.NavigationMenuViewport,exports.NotAuthorized=w.NotAuthorized,exports.NotFound=T.NotFound,exports.NumberField=g.m,exports.OrdersBarChart=u.OrdersBarChart,exports.Pagination=K.Pagination,exports.PaginationContent=K.PaginationContent,exports.PaginationEllipsis=K.PaginationEllipsis,exports.PaginationItem=K.PaginationItem,exports.PaginationLink=K.PaginationLink,exports.PaginationNext=K.PaginationNext,exports.PaginationPrevious=K.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=g.h,exports.PaymentLayout=b.t,exports.PhoneNumberDisplay=de.PhoneNumberDisplay,exports.Popover=_.Popover,exports.PopoverAnchor=_.PopoverAnchor,exports.PopoverClose=_.PopoverClose,exports.PopoverContent=_.PopoverContent,exports.PopoverTrigger=_.PopoverTrigger,exports.PortfolioAllocationTreemap=u.PortfolioAllocationTreemap,exports.PriceRangeAreaChart=u.PriceRangeAreaChart,exports.ProductCard=re.ProductCard,exports.Progress=Fe.Progress,exports.RadioGroup=q.RadioGroup,exports.RadioGroupField=g.g,exports.RadioGroupItem=q.RadioGroupItem,exports.RefreshBtn=ke.RefreshBtn,exports.RegisterPage=k.RegisterPage,exports.ResizableHandle=h.ResizableHandle,exports.ResizablePanel=h.ResizablePanel,exports.ResizablePanelGroup=h.ResizablePanelGroup,exports.RevenueAreaChart=u.RevenueAreaChart,exports.RevenueOrdersComposedChart=u.RevenueOrdersComposedChart,exports.RoleBadge=fe.RoleBadge,exports.SalesTargetRadialChart=u.SalesTargetRadialChart,exports.SankeyFlowChart=u.SankeyFlowChart,exports.ScrollArea=J.ScrollArea,exports.ScrollBar=J.ScrollBar,exports.SearchInput=Me.SearchInput,exports.SearchModal=ye.t,exports.Select=Y.Select,exports.SelectContent=Y.SelectContent,exports.SelectField=g._,exports.SelectGroup=Y.SelectGroup,exports.SelectItem=Y.SelectItem,exports.SelectLabel=Y.SelectLabel,exports.SelectSeparator=Y.SelectSeparator,exports.SelectTrigger=Y.SelectTrigger,exports.SelectValue=Y.SelectValue,exports.Separator=Ce.Separator,exports.Sheet=y.Sheet,exports.SheetClose=y.SheetClose,exports.SheetContent=y.SheetContent,exports.SheetDescription=y.SheetDescription,exports.SheetFooter=y.SheetFooter,exports.SheetHeader=y.SheetHeader,exports.SheetTitle=y.SheetTitle,exports.SheetTrigger=y.SheetTrigger,exports.SimpleArrayField=g.v,exports.SimpleBooleanField=g.y,exports.SimpleCard=ie.SimpleCard,exports.SimpleComboboxField=g.b,exports.SimpleDateField=g.x,exports.SimpleEmailField=g.S,exports.SimpleNumberField=g.C,exports.SimplePasswordField=g.w,exports.SimpleRadioGroupField=g.T,exports.SimpleSelectField=g.E,exports.SimpleTextField=g.D,exports.SimpleTextareaField=g.O,exports.Skeleton=ee.Skeleton,exports.Slider=Le.Slider,exports.SparklineChart=u.SparklineChart,exports.Spinner=xe.Spinner,exports.StackedAreaChart=u.StackedAreaChart,exports.Statistic=o.Statistic,exports.Switch=ze.Switch,exports.SwitchField=g.k,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=g.A,exports.TanStackActionsForm=g.j,exports.TanStackCardForm=g.M,exports.TanStackContainerForm=g.N,exports.TanStackDialogForm=g.P,exports.TanStackFieldGroup=g.F,exports.TanStackPopoverForm=g.I,exports.TanStackSectionForm=g.L,exports.TanStackTitleField=g.R,exports.TextEditor=v.t,exports.TextEditorField=g.z,exports.TextEditorToolbar=v.n,exports.TextField=g.B,exports.Textarea=Be.Textarea,exports.TextareaField=g.V,exports.Title=ge.Title,exports.Toaster=Re.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=a.Tooltip,exports.TooltipContent=a.TooltipContent,exports.TooltipProvider=a.TooltipProvider,exports.TooltipTrigger=a.TooltipTrigger,exports.TopProductsBarChart=u.TopProductsBarChart,exports.TrashBtn=Ae.TrashBtn,exports.UITableAnalysisPanel=p.t,exports.UITableAvatarNameDisplay=p.n,exports.UITableBadgeDisplay=p.r,exports.UITableBody=p.K,exports.UITableBooleanDisplay=p.i,exports.UITableCell=p.G,exports.UITableCellActions=p.W,exports.UITableCellSelect=p.U,exports.UITableContainer=p.D,exports.UITableCurrencyDisplay=p.a,exports.UITableDateDisplay=p.o,exports.UITableDescriptionDisplay=p.s,exports.UITableEditButton=p.c,exports.UITableEmailDisplay=p.l,exports.UITableEmpty=p.Q,exports.UITableEmptyDisplay=p.H,exports.UITableFilter=p.u,exports.UITableFooter=p.V,exports.UITableFooterRow=p.R,exports.UITableHead=p.L,exports.UITableHeadCell=p.F,exports.UITableHeadCellOption=p.I,exports.UITableHeadCellSelect=p.P,exports.UITableHeadRow=p.N,exports.UITableInnerTable=p.M,exports.UITableInnerWrapper=p.j,exports.UITableListDisplay=p.d,exports.UITableLoadMore=p.A,exports.UITableMoreButton=p.f,exports.UITableNameDisplay=p.p,exports.UITablePermalink=p.m,exports.UITablePhoneNumberDisplay=p.h,exports.UITableProgressDisplay=p.g,exports.UITableProvider=p.E,exports.UITableRemoveButton=p._,exports.UITableRow=p.k,exports.UITableStatisticDisplay=p.v,exports.UITableStatusDisplay=p.y,exports.UITableSummaryBar=p.b,exports.UITableToggleButton=p.x,exports.UITableTooltip=p.S,exports.UITableTooltipActions=p.C,exports.UITableTooltipFilter=p.w,exports.UITableUserDataDisplay=p.T,exports.UITableWrapper=p.O,exports.UploadImageBtn=je.UploadImageBtn,exports.UserDataDisplay=pe.UserDataDisplay,exports.VerifyEmailPage=Te.VerifyEmailPage,exports.VolumeBarChart=u.VolumeBarChart,exports.WaterfallChart=u.WaterfallChart,exports.badgeVariants=i.badgeVariants,exports.buttonGroupVariants=M.buttonGroupVariants,exports.computeIndexedSeries=u.computeIndexedSeries,exports.formatCompactNumber=u.formatCompactNumber,exports.formatCurrency=u.formatCurrency,exports.formatPercent=u.formatPercent,exports.formatSignedPercent=u.formatSignedPercent,exports.getChartColor=u.getChartColor,exports.getDirectionColor=u.getDirectionColor,exports.navigationMenuTriggerStyle=G.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toDateLabel=u.toDateLabel,exports.toast=Ve.toast,exports.toggleVariants=Q.toggleVariants,exports.useChart=F.useChart,exports.useDebounce=W.useDebounce,exports.useFormField=B.useFormField,exports.useTanStackFieldContext=g.G,exports.useTanStackForm=g.H,exports.useTanStackFormContext=g.K,exports.withTanStackFieldGroup=g.U,exports.withTanStackForm=g.W;
package/dist/index.d.cts CHANGED
@@ -15,7 +15,7 @@ import { n as ConfirmDialogProps, t as ConfirmDialog } from "./confirm-dialog-B8
15
15
  import { n as ButtonProps, t as Button } from "./button-BnoPktln.cjs";
16
16
  import { i as TooltipTrigger, n as TooltipContent, r as TooltipProvider, t as Tooltip } from "./tooltip-BVYKhsC2.cjs";
17
17
  import { t as Separator } from "./separator-Cvxkpzrj.cjs";
18
- import { n as DetailDialogProps, t as DetailDialog } from "./index-BOifmu0V.cjs";
18
+ import { n as DetailDialogProps, t as DetailDialog } from "./index-BXqx1kOJ.cjs";
19
19
  import { n as ErrorDialogProps, t as ErrorDialog } from "./error-dialog-DYQSm_JC.cjs";
20
20
  import { n as LoadingDialogProps, t as LoadingDialog } from "./loading-dialog-DXjQSQnC.cjs";
21
21
  import { $ as formatSignedPercent, A as SalesTargetRadialChartProps, B as IndexedPerformanceLineChartProps, C as VolumeBarChartProps, D as SankeyFlowChartProps, E as SparklineChartProps, F as PortfolioAllocationTreemapProps, G as ConversionFunnelChartProps, H as DonutChartProps, I as OrdersBarChartProps, J as ActivityHeatmapChartProps, K as FunnelStage, L as MirroredBarChartProps, M as RevenueOrdersPoint, N as RevenueAreaChartProps, O as SankeyFlowLink, P as PriceRangeAreaChartProps, Q as formatPercent, R as MirroredBarRow, S as WaterfallChartProps, T as StackedAreaChartProps, U as DonutChartSegment, V as GainLossBarChartProps, W as CorrelationScatterChartProps, X as formatCompactNumber, Y as computeIndexedSeries, Z as formatCurrency, _ as SparklineChart, a as DonutChart, at as ChartSeries, b as VolumeBarChart, c as MetricRadarChart, ct as OHLCPoint, d as PortfolioAllocationTreemap, dt as TimeSeriesPoint, et as getChartColor, f as PriceRangeAreaChart, ft as WaterfallPoint, g as SankeyFlowChart, h as SalesTargetRadialChart, i as CorrelationScatterChart, it as BaseChartProps, j as RevenueOrdersComposedChartProps, k as SankeyFlowNode, l as MirroredBarChart, lt as PortfolioHolding, m as RevenueOrdersComposedChart, n as CandlestickChart, nt as toDateLabel, o as GainLossBarChart, ot as ChartTrend, p as RevenueAreaChart, q as CandlestickChartProps, r as ConversionFunnelChart, rt as ActivityPoint, s as IndexedPerformanceLineChart, st as NamedValue, t as ActivityHeatmapChart, tt as getDirectionColor, u as OrdersBarChart, ut as ScatterPoint, v as StackedAreaChart, w as TopProductsBarChartProps, x as WaterfallChart, y as TopProductsBarChart, z as MetricRadarChartProps } from "./index-DJKJt7oV.cjs";
package/dist/index.d.mts CHANGED
@@ -15,7 +15,7 @@ import { n as ConfirmDialogProps, t as ConfirmDialog } from "./confirm-dialog-B8
15
15
  import { n as ButtonProps, t as Button } from "./button-BnoPktln.mjs";
16
16
  import { i as TooltipTrigger, n as TooltipContent, r as TooltipProvider, t as Tooltip } from "./tooltip-BVYKhsC2.mjs";
17
17
  import { t as Separator } from "./separator-Cvxkpzrj.mjs";
18
- import { n as DetailDialogProps, t as DetailDialog } from "./index-BOifmu0V.mjs";
18
+ import { n as DetailDialogProps, t as DetailDialog } from "./index-BXqx1kOJ.mjs";
19
19
  import { n as ErrorDialogProps, t as ErrorDialog } from "./error-dialog-DYQSm_JC.mjs";
20
20
  import { n as LoadingDialogProps, t as LoadingDialog } from "./loading-dialog-DXjQSQnC.mjs";
21
21
  import { $ as formatSignedPercent, A as SalesTargetRadialChartProps, B as IndexedPerformanceLineChartProps, C as VolumeBarChartProps, D as SankeyFlowChartProps, E as SparklineChartProps, F as PortfolioAllocationTreemapProps, G as ConversionFunnelChartProps, H as DonutChartProps, I as OrdersBarChartProps, J as ActivityHeatmapChartProps, K as FunnelStage, L as MirroredBarChartProps, M as RevenueOrdersPoint, N as RevenueAreaChartProps, O as SankeyFlowLink, P as PriceRangeAreaChartProps, Q as formatPercent, R as MirroredBarRow, S as WaterfallChartProps, T as StackedAreaChartProps, U as DonutChartSegment, V as GainLossBarChartProps, W as CorrelationScatterChartProps, X as formatCompactNumber, Y as computeIndexedSeries, Z as formatCurrency, _ as SparklineChart, a as DonutChart, at as ChartSeries, b as VolumeBarChart, c as MetricRadarChart, ct as OHLCPoint, d as PortfolioAllocationTreemap, dt as TimeSeriesPoint, et as getChartColor, f as PriceRangeAreaChart, ft as WaterfallPoint, g as SankeyFlowChart, h as SalesTargetRadialChart, i as CorrelationScatterChart, it as BaseChartProps, j as RevenueOrdersComposedChartProps, k as SankeyFlowNode, l as MirroredBarChart, lt as PortfolioHolding, m as RevenueOrdersComposedChart, n as CandlestickChart, nt as toDateLabel, o as GainLossBarChart, ot as ChartTrend, p as RevenueAreaChart, q as CandlestickChartProps, r as ConversionFunnelChart, rt as ActivityPoint, s as IndexedPerformanceLineChart, st as NamedValue, t as ActivityHeatmapChart, tt as getDirectionColor, u as OrdersBarChart, ut as ScatterPoint, v as StackedAreaChart, w as TopProductsBarChartProps, x as WaterfallChart, y as TopProductsBarChart, z as MetricRadarChartProps } from "./index-DJKJt7oV.mjs";
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{Button as e}from"./ui/button.mjs";import{Paragraph as t,paragraphVariants as n}from"./typography/paragraph.mjs";import{Card as r,CardAction as i,CardContent as a,CardDescription as o,CardFooter as s,CardHeader as c,CardTitle as l}from"./ui/card.mjs";import{Skeleton as u}from"./ui/skeleton.mjs";import{Image as d}from"./ui/image.mjs";import{GridProductCard as f}from"./cards/grid-product-card.mjs";import{ProductCard as p}from"./cards/product-card.mjs";import{SimpleCard as m}from"./cards/simple-card.mjs";import{Flex as h}from"./layouts/flex.mjs";import{CountryDisplay as g}from"./data-display/country.mjs";import{DataList as _,DataListItem as v}from"./data-display/data-list.mjs";import{t as y}from"./date-Nsz0Pewe.mjs";import{Badge as b,badgeVariants as x}from"./ui/badge.mjs";import{Tooltip as S,TooltipContent as C,TooltipProvider as w,TooltipTrigger as T}from"./ui/tooltip.mjs";import{DateTooltip as E}from"./data-display/date-tooltip.mjs";import{EmptyDisplay as D}from"./data-display/empty.mjs";import{NameDisplay as O}from"./data-display/name.mjs";import{PhoneNumberDisplay as k}from"./data-display/phone-number.mjs";import{RoleBadge as A}from"./data-display/role-badge.mjs";import{Statistic as j}from"./data-display/statistic.mjs";import{Avatar as M,AvatarFallback as N,AvatarImage as P}from"./ui/avatar.mjs";import{UserDataDisplay as F}from"./data-display/user.mjs";import{AlertDialog as I,AlertDialogAction as L,AlertDialogCancel as R,AlertDialogContent as z,AlertDialogDescription as B,AlertDialogFooter as V,AlertDialogHeader as H,AlertDialogOverlay as U,AlertDialogPortal as W,AlertDialogTitle as G,AlertDialogTrigger as K}from"./ui/alert-dialog.mjs";import{ConfirmDialog as q}from"./dialogs/confirm-dialog.mjs";import{t as J}from"./detail-dialog-Ct0vAjFe.mjs";import{Title as Y}from"./typography/title.mjs";import{ErrorDialog as X}from"./dialogs/error-dialog.mjs";import{Dialog as Z,DialogClose as Q,DialogContent as $,DialogDescription as ee,DialogFooter as te,DialogHeader as ne,DialogOverlay as re,DialogPortal as ie,DialogTitle as ae,DialogTrigger as oe}from"./ui/dialog.mjs";import{LoadingDialog as se}from"./dialogs/loading-dialog.mjs";import{ActivityHeatmapChart as ce,CandlestickChart as le,ConversionFunnelChart as ue,CorrelationScatterChart as de,DonutChart as fe,GainLossBarChart as pe,IndexedPerformanceLineChart as me,MetricRadarChart as he,MirroredBarChart as ge,OrdersBarChart as _e,PortfolioAllocationTreemap as ve,PriceRangeAreaChart as ye,RevenueAreaChart as be,RevenueOrdersComposedChart as xe,SalesTargetRadialChart as Se,SankeyFlowChart as Ce,SparklineChart as we,StackedAreaChart as Te,TopProductsBarChart as Ee,VolumeBarChart as De,WaterfallChart as Oe,computeIndexedSeries as ke,formatCompactNumber as Ae,formatCurrency as je,formatPercent as Me,formatSignedPercent as Ne,getChartColor as Pe,getDirectionColor as Fe,toDateLabel as Ie}from"./features/charts/index.mjs";import{Description as Le,DescriptionBadge as Re,DescriptionBoolean as ze,DescriptionCopy as Be,DescriptionDate as Ve,DescriptionEmpty as He,DescriptionHeader as Ue,DescriptionImages as We,DescriptionItem as Ge,DescriptionLink as Ke,DescriptionLongText as qe,DescriptionName as Je,DescriptionNumberPhone as Ye,DescriptionSection as Xe,DescriptionStatistic as Ze,DescriptionStatus as Qe,DescriptionTagList as $e,DescriptionUser as et}from"./features/descriptions/index.mjs";import{Command as tt,CommandDialog as nt,CommandEmpty as rt,CommandGroup as it,CommandInput as at,CommandItem as ot,CommandList as st,CommandSeparator as ct,CommandShortcut as lt}from"./ui/command.mjs";import{t as ut}from"./search-modal-Cdmi2iyV.mjs";import{A as dt,C as ft,D as pt,E as mt,F as ht,G as gt,H as _t,I as vt,K as yt,L as bt,M as xt,N as St,O as Ct,P as wt,Q as Tt,R as Et,S as Dt,T as Ot,U as kt,V as At,W as jt,_ as Mt,a as Nt,b as Pt,c as Ft,d as It,f as Lt,g as Rt,h as zt,i as Bt,j as Vt,k as Ht,l as Ut,m as Wt,n as Gt,o as Kt,p as qt,r as Jt,s as Yt,t as Xt,u as Zt,v as Qt,w as $t,x as en,y as tn}from"./tables-BGzwkdFO.mjs";import{Checkbox as nn}from"./ui/checkbox.mjs";import{DropdownMenu as rn,DropdownMenuCheckboxItem as an,DropdownMenuContent as on,DropdownMenuGroup as sn,DropdownMenuItem as cn,DropdownMenuLabel as ln,DropdownMenuPortal as un,DropdownMenuRadioGroup as dn,DropdownMenuRadioItem as fn,DropdownMenuSeparator as pn,DropdownMenuShortcut as mn,DropdownMenuSub as hn,DropdownMenuSubContent as gn,DropdownMenuSubTrigger as _n,DropdownMenuTrigger as vn}from"./ui/dropdown-menu.mjs";import{Spinner as yn}from"./ui/spinner.mjs";import{ResizableHandle as bn,ResizablePanel as xn,ResizablePanelGroup as Sn}from"./ui/resizable.mjs";import{A as Cn,B as wn,C as Tn,D as En,E as Dn,F as On,G as kn,H as An,I as jn,K as Mn,L as Nn,M as Pn,N as Fn,O as In,P as Ln,R as Rn,S as zn,T as Bn,U as Vn,V as Hn,W as Un,_ as Wn,a as Gn,b as Kn,c as qn,d as Jn,f as Yn,g as Xn,h as Zn,i as Qn,j as $n,k as er,l as tr,m as nr,n as rr,o as ir,p as ar,r as or,s as sr,t as cr,u as lr,v as ur,w as dr,x as fr,y as pr,z as mr}from"./tanstack-form-q9hDCc0Y.mjs";import{Popover as hr,PopoverAnchor as gr,PopoverClose as _r,PopoverContent as vr,PopoverTrigger as yr}from"./ui/popover.mjs";import{n as br,t as xr}from"./text-editor-CtR27_PR.mjs";import{Input as Sr}from"./ui/input.mjs";import{Separator as Cr}from"./ui/separator.mjs";import{t as wr}from"./cms-layout-Ba_5wSnr.mjs";import{Sheet as Tr,SheetClose as Er,SheetContent as Dr,SheetDescription as Or,SheetFooter as kr,SheetHeader as Ar,SheetTitle as jr,SheetTrigger as Mr}from"./ui/sheet.mjs";import{t as Nr}from"./payment-layout-BSl9DYQA.mjs";import{Grid as Pr}from"./layouts/grid.mjs";import{FeatureDeveloping as Fr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Ir}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Lr}from"./pages/NotAuthorized.mjs";import{NotFound as Rr}from"./pages/NotFound.mjs";import{n as zr,r as Br,t as Vr}from"./alert-OD1KJTEV.mjs";import{Label as Hr}from"./ui/label.mjs";import{LoginPage as Ur}from"./pages/LoginPage.mjs";import{RegisterPage as Wr}from"./pages/RegisterPage.mjs";import{InputOTP as Gr,InputOTPGroup as Kr,InputOTPSeparator as qr,InputOTPSlot as Jr}from"./ui/input-otp.mjs";import{VerifyEmailPage as Yr}from"./pages/VerifyEmailPage.mjs";import{Google as Xr}from"./systems/google.mjs";import{AddNewBtn as Zr}from"./ui/buttons/add-new.mjs";import{EditBtn as Qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as $r}from"./ui/buttons/refresh.mjs";import{TrashBtn as ei}from"./ui/buttons/trash.mjs";import{UploadImageBtn as ti}from"./ui/buttons/upload-image.mjs";import{SearchInput as ni}from"./ui/inputs/search-input.mjs";import{AspectRatio as ri}from"./ui/aspect-ratio.mjs";import{Breadcrumb as ii,BreadcrumbEllipsis as ai,BreadcrumbItem as oi,BreadcrumbLink as si,BreadcrumbList as ci,BreadcrumbPage as li,BreadcrumbSeparator as ui}from"./ui/breadcrumb.mjs";import{ButtonGroup as di,ButtonGroupSeparator as fi,ButtonGroupText as pi,buttonGroupVariants as mi}from"./ui/button-group.mjs";import{Calendar as hi,CalendarDayButton as gi}from"./ui/calendar.mjs";import{Carousel as _i,CarouselContent as vi,CarouselItem as yi,CarouselNext as bi,CarouselPrevious as xi}from"./ui/carousel.mjs";import{ChartContainer as Si,ChartLegend as Ci,ChartLegendContent as wi,ChartStyle as Ti,ChartTooltip as Ei,ChartTooltipContent as Di,useChart as Oi}from"./ui/chart.mjs";import{Collapsible as ki,CollapsibleContent as Ai,CollapsibleTrigger as ji}from"./ui/collapsible.mjs";import{t as Mi}from"./combobox-C64Rvd7n.mjs";import{ContextMenu as Ni,ContextMenuCheckboxItem as Pi,ContextMenuContent as Fi,ContextMenuGroup as Ii,ContextMenuItem as Li,ContextMenuLabel as Ri,ContextMenuPortal as zi,ContextMenuRadioGroup as Bi,ContextMenuRadioItem as Vi,ContextMenuSeparator as Hi,ContextMenuShortcut as Ui,ContextMenuSub as Wi,ContextMenuSubContent as Gi,ContextMenuSubTrigger as Ki,ContextMenuTrigger as qi}from"./ui/context-menu.mjs";import{Drawer as Ji,DrawerClose as Yi,DrawerContent as Xi,DrawerDescription as Zi,DrawerFooter as Qi,DrawerHeader as $i,DrawerOverlay as ea,DrawerPortal as ta,DrawerTitle as na,DrawerTrigger as ra}from"./ui/drawer.mjs";import{Empty as ia,EmptyContent as aa,EmptyDescription as oa,EmptyHeader as sa,EmptyMedia as ca,EmptyTitle as la}from"./ui/empty.mjs";import{Progress as ua}from"./ui/progress.mjs";import{FileUploader as da}from"./ui/file-uploader.mjs";import{Form as fa,FormControl as pa,FormDescription as ma,FormField as ha,FormItem as ga,FormLabel as _a,FormMessage as va,useFormField as ya}from"./ui/form.mjs";import{HoverCard as ba,HoverCardContent as xa,HoverCardTrigger as Sa}from"./ui/hover-card.mjs";import{Item as Ca,ItemActions as wa,ItemContent as Ta,ItemDescription as Ea,ItemFooter as Da,ItemGroup as Oa,ItemHeader as ka,ItemMedia as Aa,ItemSeparator as ja,ItemTitle as Ma}from"./ui/item.mjs";import{Menubar as Na,MenubarCheckboxItem as Pa,MenubarContent as Fa,MenubarGroup as Ia,MenubarItem as La,MenubarLabel as Ra,MenubarMenu as za,MenubarPortal as Ba,MenubarRadioGroup as Va,MenubarRadioItem as Ha,MenubarSeparator as Ua,MenubarShortcut as Wa,MenubarSub as Ga,MenubarSubContent as Ka,MenubarSubTrigger as qa,MenubarTrigger as Ja}from"./ui/menubar.mjs";import{MultipleSelector as Ya,useDebounce as Xa}from"./ui/multi-select.mjs";import{NavigationMenu as Za,NavigationMenuContent as Qa,NavigationMenuIndicator as $a,NavigationMenuItem as eo,NavigationMenuLink as to,NavigationMenuList as no,NavigationMenuTrigger as ro,NavigationMenuViewport as io,navigationMenuTriggerStyle as ao}from"./ui/navigation-menu.mjs";import{Pagination as oo,PaginationContent as so,PaginationEllipsis as co,PaginationItem as lo,PaginationLink as uo,PaginationNext as fo,PaginationPrevious as po}from"./ui/pagination.mjs";import{RadioGroup as mo,RadioGroupItem as ho}from"./ui/radio-group.mjs";import{ScrollArea as go,ScrollBar as _o}from"./ui/scroll-area.mjs";import{Select as vo,SelectContent as yo,SelectGroup as bo,SelectItem as xo,SelectLabel as So,SelectSeparator as Co,SelectTrigger as wo,SelectValue as To}from"./ui/select.mjs";import{Slider as Eo}from"./ui/slider.mjs";import{Toaster as Do,toast as Oo}from"./ui/sonner.mjs";import{Switch as ko}from"./ui/switch.mjs";import{Table as Ao,TableBody as jo,TableCaption as Mo,TableCell as No,TableFooter as Po,TableHead as Fo,TableHeader as Io,TableRow as Lo}from"./ui/table.mjs";import{Tabs as Ro,TabsContent as zo,TabsList as Bo,TabsTrigger as Vo}from"./ui/tabs.mjs";import{Textarea as Ho}from"./ui/textarea.mjs";import{Toggle as Uo,toggleVariants as Wo}from"./ui/toggle.mjs";import{ToggleGroup as Go,ToggleGroupItem as Ko}from"./ui/toggle-group.mjs";export{ce as ActivityHeatmapChart,Zr as AddNewBtn,Vr as Alert,zr as AlertDescription,I as AlertDialog,L as AlertDialogAction,R as AlertDialogCancel,z as AlertDialogContent,B as AlertDialogDescription,V as AlertDialogFooter,H as AlertDialogHeader,U as AlertDialogOverlay,W as AlertDialogPortal,G as AlertDialogTitle,K as AlertDialogTrigger,Br as AlertTitle,cr as ArrayCol,rr as ArrayHeaderRow,ri as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,ii as Breadcrumb,ai as BreadcrumbEllipsis,oi as BreadcrumbItem,si as BreadcrumbLink,ci as BreadcrumbList,li as BreadcrumbPage,ui as BreadcrumbSeparator,e as Button,di as ButtonGroup,fi as ButtonGroupSeparator,pi as ButtonGroupText,wr as CMSLayout,hi as Calendar,gi as CalendarDayButton,le as CandlestickChart,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,_i as Carousel,vi as CarouselContent,yi as CarouselItem,bi as CarouselNext,xi as CarouselPrevious,Si as ChartContainer,Ci as ChartLegend,wi as ChartLegendContent,Ti as ChartStyle,Ei as ChartTooltip,Di as ChartTooltipContent,nn as Checkbox,or as CheckboxField,ki as Collapsible,Ai as CollapsibleContent,ji as CollapsibleTrigger,Mi as Combobox,Qn as ComboboxField,tt as Command,nt as CommandDialog,rt as CommandEmpty,it as CommandGroup,at as CommandInput,ot as CommandItem,st as CommandList,ct as CommandSeparator,lt as CommandShortcut,q as ConfirmDialog,Ni as ContextMenu,Pi as ContextMenuCheckboxItem,Fi as ContextMenuContent,Ii as ContextMenuGroup,Li as ContextMenuItem,Ri as ContextMenuLabel,zi as ContextMenuPortal,Bi as ContextMenuRadioGroup,Vi as ContextMenuRadioItem,Hi as ContextMenuSeparator,Ui as ContextMenuShortcut,Wi as ContextMenuSub,Gi as ContextMenuSubContent,Ki as ContextMenuSubTrigger,qi as ContextMenuTrigger,ue as ConversionFunnelChart,de as CorrelationScatterChart,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,Gn as DateField,E as DateTooltip,Le as Description,Re as DescriptionBadge,ze as DescriptionBoolean,Be as DescriptionCopy,Ve as DescriptionDate,He as DescriptionEmpty,Ue as DescriptionHeader,We as DescriptionImages,Ge as DescriptionItem,Ke as DescriptionLink,qe as DescriptionLongText,Je as DescriptionName,Ye as DescriptionNumberPhone,Xe as DescriptionSection,Ze as DescriptionStatistic,Qe as DescriptionStatus,$e as DescriptionTagList,et as DescriptionUser,J as DetailDialog,Z as Dialog,Q as DialogClose,$ as DialogContent,ee as DialogDescription,te as DialogFooter,ne as DialogHeader,re as DialogOverlay,ie as DialogPortal,ae as DialogTitle,oe as DialogTrigger,fe as DonutChart,Ji as Drawer,Yi as DrawerClose,Xi as DrawerContent,Zi as DrawerDescription,Qi as DrawerFooter,$i as DrawerHeader,ea as DrawerOverlay,ta as DrawerPortal,na as DrawerTitle,ra as DrawerTrigger,rn as DropdownMenu,an as DropdownMenuCheckboxItem,on as DropdownMenuContent,sn as DropdownMenuGroup,cn as DropdownMenuItem,ln as DropdownMenuLabel,un as DropdownMenuPortal,dn as DropdownMenuRadioGroup,fn as DropdownMenuRadioItem,pn as DropdownMenuSeparator,mn as DropdownMenuShortcut,hn as DropdownMenuSub,gn as DropdownMenuSubContent,_n as DropdownMenuSubTrigger,vn as DropdownMenuTrigger,Qr as EditBtn,ir as EmailField,ia as Empty,aa as EmptyContent,oa as EmptyDescription,D as EmptyDisplay,sa as EmptyHeader,ca as EmptyMedia,la as EmptyTitle,X as ErrorDialog,Fr as FeatureDeveloping,Ir as FeatureFixing,sr as Field,qn as FieldContent,tr as FieldContentMain,lr as FieldError,Jn as FieldGroup,Yn as FieldLabel,ar as FieldSeparator,da as FileUploader,h as Flex,fa as Form,pa as FormControl,ma as FormDescription,ha as FormField,ga as FormItem,_a as FormLabel,va as FormMessage,pe as GainLossBarChart,Xr as Google,Pr as Grid,f as GridProductCard,ba as HoverCard,xa as HoverCardContent,Sa as HoverCardTrigger,d as Image,me as IndexedPerformanceLineChart,Sr as Input,Gr as InputOTP,Kr as InputOTPGroup,qr as InputOTPSeparator,Jr as InputOTPSlot,Ca as Item,wa as ItemActions,Ta as ItemContent,Ea as ItemDescription,Da as ItemFooter,Oa as ItemGroup,ka as ItemHeader,Aa as ItemMedia,ja as ItemSeparator,Ma as ItemTitle,Hr as Label,se as LoadingDialog,Ur as LoginPage,Na as Menubar,Pa as MenubarCheckboxItem,Fa as MenubarContent,Ia as MenubarGroup,La as MenubarItem,Ra as MenubarLabel,za as MenubarMenu,Ba as MenubarPortal,Va as MenubarRadioGroup,Ha as MenubarRadioItem,Ua as MenubarSeparator,Wa as MenubarShortcut,Ga as MenubarSub,Ka as MenubarSubContent,qa as MenubarSubTrigger,Ja as MenubarTrigger,he as MetricRadarChart,ge as MirroredBarChart,Ya as MultipleSelector,O as NameDisplay,Za as NavigationMenu,Qa as NavigationMenuContent,$a as NavigationMenuIndicator,eo as NavigationMenuItem,to as NavigationMenuLink,no as NavigationMenuList,ro as NavigationMenuTrigger,io as NavigationMenuViewport,Lr as NotAuthorized,Rr as NotFound,nr as NumberField,_e as OrdersBarChart,oo as Pagination,so as PaginationContent,co as PaginationEllipsis,lo as PaginationItem,uo as PaginationLink,fo as PaginationNext,po as PaginationPrevious,t as Paragraph,Zn as PasswordField,Nr as PaymentLayout,k as PhoneNumberDisplay,hr as Popover,gr as PopoverAnchor,_r as PopoverClose,vr as PopoverContent,yr as PopoverTrigger,ve as PortfolioAllocationTreemap,ye as PriceRangeAreaChart,p as ProductCard,ua as Progress,mo as RadioGroup,Xn as RadioGroupField,ho as RadioGroupItem,$r as RefreshBtn,Wr as RegisterPage,bn as ResizableHandle,xn as ResizablePanel,Sn as ResizablePanelGroup,be as RevenueAreaChart,xe as RevenueOrdersComposedChart,A as RoleBadge,Se as SalesTargetRadialChart,Ce as SankeyFlowChart,go as ScrollArea,_o as ScrollBar,ni as SearchInput,ut as SearchModal,vo as Select,yo as SelectContent,Wn as SelectField,bo as SelectGroup,xo as SelectItem,So as SelectLabel,Co as SelectSeparator,wo as SelectTrigger,To as SelectValue,Cr as Separator,Tr as Sheet,Er as SheetClose,Dr as SheetContent,Or as SheetDescription,kr as SheetFooter,Ar as SheetHeader,jr as SheetTitle,Mr as SheetTrigger,ur as SimpleArrayField,pr as SimpleBooleanField,m as SimpleCard,Kn as SimpleComboboxField,fr as SimpleDateField,zn as SimpleEmailField,Tn as SimpleNumberField,dr as SimplePasswordField,Bn as SimpleRadioGroupField,Dn as SimpleSelectField,En as SimpleTextField,In as SimpleTextareaField,u as Skeleton,Eo as Slider,we as SparklineChart,yn as Spinner,Te as StackedAreaChart,j as Statistic,ko as Switch,er as SwitchField,Ao as Table,jo as TableBody,Mo as TableCaption,No as TableCell,Po as TableFooter,Fo as TableHead,Io as TableHeader,Lo as TableRow,Ro as Tabs,zo as TabsContent,Bo as TabsList,Vo as TabsTrigger,Cn as TanStackActionSubmit,$n as TanStackActionsForm,Pn as TanStackCardForm,Fn as TanStackContainerForm,Ln as TanStackDialogForm,On as TanStackFieldGroup,jn as TanStackPopoverForm,Nn as TanStackSectionForm,Rn as TanStackTitleField,xr as TextEditor,mr as TextEditorField,br as TextEditorToolbar,wn as TextField,Ho as Textarea,Hn as TextareaField,Y as Title,Do as Toaster,Uo as Toggle,Go as ToggleGroup,Ko as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Ee as TopProductsBarChart,ei as TrashBtn,Xt as UITableAnalysisPanel,Gt as UITableAvatarNameDisplay,Jt as UITableBadgeDisplay,yt as UITableBody,Bt as UITableBooleanDisplay,gt as UITableCell,jt as UITableCellActions,kt as UITableCellSelect,pt as UITableContainer,Nt as UITableCurrencyDisplay,Kt as UITableDateDisplay,Yt as UITableDescriptionDisplay,Ft as UITableEditButton,Ut as UITableEmailDisplay,Tt as UITableEmpty,_t as UITableEmptyDisplay,Zt as UITableFilter,At as UITableFooter,Et as UITableFooterRow,bt as UITableHead,ht as UITableHeadCell,vt as UITableHeadCellOption,wt as UITableHeadCellSelect,St as UITableHeadRow,xt as UITableInnerTable,Vt as UITableInnerWrapper,It as UITableListDisplay,dt as UITableLoadMore,Lt as UITableMoreButton,qt as UITableNameDisplay,Wt as UITablePermalink,zt as UITablePhoneNumberDisplay,Rt as UITableProgressDisplay,mt as UITableProvider,Mt as UITableRemoveButton,Ht as UITableRow,Qt as UITableStatisticDisplay,tn as UITableStatusDisplay,Pt as UITableSummaryBar,en as UITableToggleButton,Dt as UITableTooltip,ft as UITableTooltipActions,$t as UITableTooltipFilter,Ot as UITableUserDataDisplay,Ct as UITableWrapper,ti as UploadImageBtn,F as UserDataDisplay,Yr as VerifyEmailPage,De as VolumeBarChart,Oe as WaterfallChart,x as badgeVariants,mi as buttonGroupVariants,ke as computeIndexedSeries,Ae as formatCompactNumber,je as formatCurrency,Me as formatPercent,Ne as formatSignedPercent,Pe as getChartColor,Fe as getDirectionColor,ao as navigationMenuTriggerStyle,n as paragraphVariants,Ie as toDateLabel,Oo as toast,Wo as toggleVariants,Oi as useChart,Xa as useDebounce,ya as useFormField,kn as useTanStackFieldContext,An as useTanStackForm,Mn as useTanStackFormContext,Vn as withTanStackFieldGroup,Un as withTanStackForm};
1
+ import{Button as e}from"./ui/button.mjs";import{Paragraph as t,paragraphVariants as n}from"./typography/paragraph.mjs";import{Card as r,CardAction as i,CardContent as a,CardDescription as o,CardFooter as s,CardHeader as c,CardTitle as l}from"./ui/card.mjs";import{Skeleton as u}from"./ui/skeleton.mjs";import{Image as d}from"./ui/image.mjs";import{GridProductCard as f}from"./cards/grid-product-card.mjs";import{ProductCard as p}from"./cards/product-card.mjs";import{SimpleCard as m}from"./cards/simple-card.mjs";import{Flex as h}from"./layouts/flex.mjs";import{CountryDisplay as g}from"./data-display/country.mjs";import{DataList as _,DataListItem as v}from"./data-display/data-list.mjs";import{t as y}from"./date-Nsz0Pewe.mjs";import{Badge as b,badgeVariants as x}from"./ui/badge.mjs";import{Tooltip as S,TooltipContent as C,TooltipProvider as w,TooltipTrigger as T}from"./ui/tooltip.mjs";import{DateTooltip as E}from"./data-display/date-tooltip.mjs";import{EmptyDisplay as D}from"./data-display/empty.mjs";import{NameDisplay as O}from"./data-display/name.mjs";import{PhoneNumberDisplay as k}from"./data-display/phone-number.mjs";import{RoleBadge as A}from"./data-display/role-badge.mjs";import{Statistic as j}from"./data-display/statistic.mjs";import{Avatar as M,AvatarFallback as N,AvatarImage as P}from"./ui/avatar.mjs";import{UserDataDisplay as F}from"./data-display/user.mjs";import{AlertDialog as I,AlertDialogAction as L,AlertDialogCancel as R,AlertDialogContent as z,AlertDialogDescription as B,AlertDialogFooter as V,AlertDialogHeader as H,AlertDialogOverlay as U,AlertDialogPortal as W,AlertDialogTitle as G,AlertDialogTrigger as K}from"./ui/alert-dialog.mjs";import{ConfirmDialog as q}from"./dialogs/confirm-dialog.mjs";import{t as J}from"./detail-dialog-DwfTi9Fl.mjs";import{Title as Y}from"./typography/title.mjs";import{ErrorDialog as X}from"./dialogs/error-dialog.mjs";import{Dialog as Z,DialogClose as Q,DialogContent as $,DialogDescription as ee,DialogFooter as te,DialogHeader as ne,DialogOverlay as re,DialogPortal as ie,DialogTitle as ae,DialogTrigger as oe}from"./ui/dialog.mjs";import{LoadingDialog as se}from"./dialogs/loading-dialog.mjs";import{ActivityHeatmapChart as ce,CandlestickChart as le,ConversionFunnelChart as ue,CorrelationScatterChart as de,DonutChart as fe,GainLossBarChart as pe,IndexedPerformanceLineChart as me,MetricRadarChart as he,MirroredBarChart as ge,OrdersBarChart as _e,PortfolioAllocationTreemap as ve,PriceRangeAreaChart as ye,RevenueAreaChart as be,RevenueOrdersComposedChart as xe,SalesTargetRadialChart as Se,SankeyFlowChart as Ce,SparklineChart as we,StackedAreaChart as Te,TopProductsBarChart as Ee,VolumeBarChart as De,WaterfallChart as Oe,computeIndexedSeries as ke,formatCompactNumber as Ae,formatCurrency as je,formatPercent as Me,formatSignedPercent as Ne,getChartColor as Pe,getDirectionColor as Fe,toDateLabel as Ie}from"./features/charts/index.mjs";import{Description as Le,DescriptionBadge as Re,DescriptionBoolean as ze,DescriptionCopy as Be,DescriptionDate as Ve,DescriptionEmpty as He,DescriptionHeader as Ue,DescriptionImages as We,DescriptionItem as Ge,DescriptionLink as Ke,DescriptionLongText as qe,DescriptionName as Je,DescriptionNumberPhone as Ye,DescriptionSection as Xe,DescriptionStatistic as Ze,DescriptionStatus as Qe,DescriptionTagList as $e,DescriptionUser as et}from"./features/descriptions/index.mjs";import{Command as tt,CommandDialog as nt,CommandEmpty as rt,CommandGroup as it,CommandInput as at,CommandItem as ot,CommandList as st,CommandSeparator as ct,CommandShortcut as lt}from"./ui/command.mjs";import{t as ut}from"./search-modal-Cdmi2iyV.mjs";import{A as dt,C as ft,D as pt,E as mt,F as ht,G as gt,H as _t,I as vt,K as yt,L as bt,M as xt,N as St,O as Ct,P as wt,Q as Tt,R as Et,S as Dt,T as Ot,U as kt,V as At,W as jt,_ as Mt,a as Nt,b as Pt,c as Ft,d as It,f as Lt,g as Rt,h as zt,i as Bt,j as Vt,k as Ht,l as Ut,m as Wt,n as Gt,o as Kt,p as qt,r as Jt,s as Yt,t as Xt,u as Zt,v as Qt,w as $t,x as en,y as tn}from"./tables-7_KgoyS-.mjs";import{Checkbox as nn}from"./ui/checkbox.mjs";import{DropdownMenu as rn,DropdownMenuCheckboxItem as an,DropdownMenuContent as on,DropdownMenuGroup as sn,DropdownMenuItem as cn,DropdownMenuLabel as ln,DropdownMenuPortal as un,DropdownMenuRadioGroup as dn,DropdownMenuRadioItem as fn,DropdownMenuSeparator as pn,DropdownMenuShortcut as mn,DropdownMenuSub as hn,DropdownMenuSubContent as gn,DropdownMenuSubTrigger as _n,DropdownMenuTrigger as vn}from"./ui/dropdown-menu.mjs";import{Spinner as yn}from"./ui/spinner.mjs";import{ResizableHandle as bn,ResizablePanel as xn,ResizablePanelGroup as Sn}from"./ui/resizable.mjs";import{A as Cn,B as wn,C as Tn,D as En,E as Dn,F as On,G as kn,H as An,I as jn,K as Mn,L as Nn,M as Pn,N as Fn,O as In,P as Ln,R as Rn,S as zn,T as Bn,U as Vn,V as Hn,W as Un,_ as Wn,a as Gn,b as Kn,c as qn,d as Jn,f as Yn,g as Xn,h as Zn,i as Qn,j as $n,k as er,l as tr,m as nr,n as rr,o as ir,p as ar,r as or,s as sr,t as cr,u as lr,v as ur,w as dr,x as fr,y as pr,z as mr}from"./tanstack-form-q9hDCc0Y.mjs";import{Popover as hr,PopoverAnchor as gr,PopoverClose as _r,PopoverContent as vr,PopoverTrigger as yr}from"./ui/popover.mjs";import{n as br,t as xr}from"./text-editor-CtR27_PR.mjs";import{Input as Sr}from"./ui/input.mjs";import{Separator as Cr}from"./ui/separator.mjs";import{t as wr}from"./cms-layout-Ba_5wSnr.mjs";import{Sheet as Tr,SheetClose as Er,SheetContent as Dr,SheetDescription as Or,SheetFooter as kr,SheetHeader as Ar,SheetTitle as jr,SheetTrigger as Mr}from"./ui/sheet.mjs";import{t as Nr}from"./payment-layout-BSl9DYQA.mjs";import{Grid as Pr}from"./layouts/grid.mjs";import{FeatureDeveloping as Fr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Ir}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Lr}from"./pages/NotAuthorized.mjs";import{NotFound as Rr}from"./pages/NotFound.mjs";import{n as zr,r as Br,t as Vr}from"./alert-OD1KJTEV.mjs";import{Label as Hr}from"./ui/label.mjs";import{LoginPage as Ur}from"./pages/LoginPage.mjs";import{RegisterPage as Wr}from"./pages/RegisterPage.mjs";import{InputOTP as Gr,InputOTPGroup as Kr,InputOTPSeparator as qr,InputOTPSlot as Jr}from"./ui/input-otp.mjs";import{VerifyEmailPage as Yr}from"./pages/VerifyEmailPage.mjs";import{Google as Xr}from"./systems/google.mjs";import{AddNewBtn as Zr}from"./ui/buttons/add-new.mjs";import{EditBtn as Qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as $r}from"./ui/buttons/refresh.mjs";import{TrashBtn as ei}from"./ui/buttons/trash.mjs";import{UploadImageBtn as ti}from"./ui/buttons/upload-image.mjs";import{SearchInput as ni}from"./ui/inputs/search-input.mjs";import{AspectRatio as ri}from"./ui/aspect-ratio.mjs";import{Breadcrumb as ii,BreadcrumbEllipsis as ai,BreadcrumbItem as oi,BreadcrumbLink as si,BreadcrumbList as ci,BreadcrumbPage as li,BreadcrumbSeparator as ui}from"./ui/breadcrumb.mjs";import{ButtonGroup as di,ButtonGroupSeparator as fi,ButtonGroupText as pi,buttonGroupVariants as mi}from"./ui/button-group.mjs";import{Calendar as hi,CalendarDayButton as gi}from"./ui/calendar.mjs";import{Carousel as _i,CarouselContent as vi,CarouselItem as yi,CarouselNext as bi,CarouselPrevious as xi}from"./ui/carousel.mjs";import{ChartContainer as Si,ChartLegend as Ci,ChartLegendContent as wi,ChartStyle as Ti,ChartTooltip as Ei,ChartTooltipContent as Di,useChart as Oi}from"./ui/chart.mjs";import{Collapsible as ki,CollapsibleContent as Ai,CollapsibleTrigger as ji}from"./ui/collapsible.mjs";import{t as Mi}from"./combobox-C64Rvd7n.mjs";import{ContextMenu as Ni,ContextMenuCheckboxItem as Pi,ContextMenuContent as Fi,ContextMenuGroup as Ii,ContextMenuItem as Li,ContextMenuLabel as Ri,ContextMenuPortal as zi,ContextMenuRadioGroup as Bi,ContextMenuRadioItem as Vi,ContextMenuSeparator as Hi,ContextMenuShortcut as Ui,ContextMenuSub as Wi,ContextMenuSubContent as Gi,ContextMenuSubTrigger as Ki,ContextMenuTrigger as qi}from"./ui/context-menu.mjs";import{Drawer as Ji,DrawerClose as Yi,DrawerContent as Xi,DrawerDescription as Zi,DrawerFooter as Qi,DrawerHeader as $i,DrawerOverlay as ea,DrawerPortal as ta,DrawerTitle as na,DrawerTrigger as ra}from"./ui/drawer.mjs";import{Empty as ia,EmptyContent as aa,EmptyDescription as oa,EmptyHeader as sa,EmptyMedia as ca,EmptyTitle as la}from"./ui/empty.mjs";import{Progress as ua}from"./ui/progress.mjs";import{FileUploader as da}from"./ui/file-uploader.mjs";import{Form as fa,FormControl as pa,FormDescription as ma,FormField as ha,FormItem as ga,FormLabel as _a,FormMessage as va,useFormField as ya}from"./ui/form.mjs";import{HoverCard as ba,HoverCardContent as xa,HoverCardTrigger as Sa}from"./ui/hover-card.mjs";import{Item as Ca,ItemActions as wa,ItemContent as Ta,ItemDescription as Ea,ItemFooter as Da,ItemGroup as Oa,ItemHeader as ka,ItemMedia as Aa,ItemSeparator as ja,ItemTitle as Ma}from"./ui/item.mjs";import{Menubar as Na,MenubarCheckboxItem as Pa,MenubarContent as Fa,MenubarGroup as Ia,MenubarItem as La,MenubarLabel as Ra,MenubarMenu as za,MenubarPortal as Ba,MenubarRadioGroup as Va,MenubarRadioItem as Ha,MenubarSeparator as Ua,MenubarShortcut as Wa,MenubarSub as Ga,MenubarSubContent as Ka,MenubarSubTrigger as qa,MenubarTrigger as Ja}from"./ui/menubar.mjs";import{MultipleSelector as Ya,useDebounce as Xa}from"./ui/multi-select.mjs";import{NavigationMenu as Za,NavigationMenuContent as Qa,NavigationMenuIndicator as $a,NavigationMenuItem as eo,NavigationMenuLink as to,NavigationMenuList as no,NavigationMenuTrigger as ro,NavigationMenuViewport as io,navigationMenuTriggerStyle as ao}from"./ui/navigation-menu.mjs";import{Pagination as oo,PaginationContent as so,PaginationEllipsis as co,PaginationItem as lo,PaginationLink as uo,PaginationNext as fo,PaginationPrevious as po}from"./ui/pagination.mjs";import{RadioGroup as mo,RadioGroupItem as ho}from"./ui/radio-group.mjs";import{ScrollArea as go,ScrollBar as _o}from"./ui/scroll-area.mjs";import{Select as vo,SelectContent as yo,SelectGroup as bo,SelectItem as xo,SelectLabel as So,SelectSeparator as Co,SelectTrigger as wo,SelectValue as To}from"./ui/select.mjs";import{Slider as Eo}from"./ui/slider.mjs";import{Toaster as Do,toast as Oo}from"./ui/sonner.mjs";import{Switch as ko}from"./ui/switch.mjs";import{Table as Ao,TableBody as jo,TableCaption as Mo,TableCell as No,TableFooter as Po,TableHead as Fo,TableHeader as Io,TableRow as Lo}from"./ui/table.mjs";import{Tabs as Ro,TabsContent as zo,TabsList as Bo,TabsTrigger as Vo}from"./ui/tabs.mjs";import{Textarea as Ho}from"./ui/textarea.mjs";import{Toggle as Uo,toggleVariants as Wo}from"./ui/toggle.mjs";import{ToggleGroup as Go,ToggleGroupItem as Ko}from"./ui/toggle-group.mjs";export{ce as ActivityHeatmapChart,Zr as AddNewBtn,Vr as Alert,zr as AlertDescription,I as AlertDialog,L as AlertDialogAction,R as AlertDialogCancel,z as AlertDialogContent,B as AlertDialogDescription,V as AlertDialogFooter,H as AlertDialogHeader,U as AlertDialogOverlay,W as AlertDialogPortal,G as AlertDialogTitle,K as AlertDialogTrigger,Br as AlertTitle,cr as ArrayCol,rr as ArrayHeaderRow,ri as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,ii as Breadcrumb,ai as BreadcrumbEllipsis,oi as BreadcrumbItem,si as BreadcrumbLink,ci as BreadcrumbList,li as BreadcrumbPage,ui as BreadcrumbSeparator,e as Button,di as ButtonGroup,fi as ButtonGroupSeparator,pi as ButtonGroupText,wr as CMSLayout,hi as Calendar,gi as CalendarDayButton,le as CandlestickChart,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,_i as Carousel,vi as CarouselContent,yi as CarouselItem,bi as CarouselNext,xi as CarouselPrevious,Si as ChartContainer,Ci as ChartLegend,wi as ChartLegendContent,Ti as ChartStyle,Ei as ChartTooltip,Di as ChartTooltipContent,nn as Checkbox,or as CheckboxField,ki as Collapsible,Ai as CollapsibleContent,ji as CollapsibleTrigger,Mi as Combobox,Qn as ComboboxField,tt as Command,nt as CommandDialog,rt as CommandEmpty,it as CommandGroup,at as CommandInput,ot as CommandItem,st as CommandList,ct as CommandSeparator,lt as CommandShortcut,q as ConfirmDialog,Ni as ContextMenu,Pi as ContextMenuCheckboxItem,Fi as ContextMenuContent,Ii as ContextMenuGroup,Li as ContextMenuItem,Ri as ContextMenuLabel,zi as ContextMenuPortal,Bi as ContextMenuRadioGroup,Vi as ContextMenuRadioItem,Hi as ContextMenuSeparator,Ui as ContextMenuShortcut,Wi as ContextMenuSub,Gi as ContextMenuSubContent,Ki as ContextMenuSubTrigger,qi as ContextMenuTrigger,ue as ConversionFunnelChart,de as CorrelationScatterChart,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,Gn as DateField,E as DateTooltip,Le as Description,Re as DescriptionBadge,ze as DescriptionBoolean,Be as DescriptionCopy,Ve as DescriptionDate,He as DescriptionEmpty,Ue as DescriptionHeader,We as DescriptionImages,Ge as DescriptionItem,Ke as DescriptionLink,qe as DescriptionLongText,Je as DescriptionName,Ye as DescriptionNumberPhone,Xe as DescriptionSection,Ze as DescriptionStatistic,Qe as DescriptionStatus,$e as DescriptionTagList,et as DescriptionUser,J as DetailDialog,Z as Dialog,Q as DialogClose,$ as DialogContent,ee as DialogDescription,te as DialogFooter,ne as DialogHeader,re as DialogOverlay,ie as DialogPortal,ae as DialogTitle,oe as DialogTrigger,fe as DonutChart,Ji as Drawer,Yi as DrawerClose,Xi as DrawerContent,Zi as DrawerDescription,Qi as DrawerFooter,$i as DrawerHeader,ea as DrawerOverlay,ta as DrawerPortal,na as DrawerTitle,ra as DrawerTrigger,rn as DropdownMenu,an as DropdownMenuCheckboxItem,on as DropdownMenuContent,sn as DropdownMenuGroup,cn as DropdownMenuItem,ln as DropdownMenuLabel,un as DropdownMenuPortal,dn as DropdownMenuRadioGroup,fn as DropdownMenuRadioItem,pn as DropdownMenuSeparator,mn as DropdownMenuShortcut,hn as DropdownMenuSub,gn as DropdownMenuSubContent,_n as DropdownMenuSubTrigger,vn as DropdownMenuTrigger,Qr as EditBtn,ir as EmailField,ia as Empty,aa as EmptyContent,oa as EmptyDescription,D as EmptyDisplay,sa as EmptyHeader,ca as EmptyMedia,la as EmptyTitle,X as ErrorDialog,Fr as FeatureDeveloping,Ir as FeatureFixing,sr as Field,qn as FieldContent,tr as FieldContentMain,lr as FieldError,Jn as FieldGroup,Yn as FieldLabel,ar as FieldSeparator,da as FileUploader,h as Flex,fa as Form,pa as FormControl,ma as FormDescription,ha as FormField,ga as FormItem,_a as FormLabel,va as FormMessage,pe as GainLossBarChart,Xr as Google,Pr as Grid,f as GridProductCard,ba as HoverCard,xa as HoverCardContent,Sa as HoverCardTrigger,d as Image,me as IndexedPerformanceLineChart,Sr as Input,Gr as InputOTP,Kr as InputOTPGroup,qr as InputOTPSeparator,Jr as InputOTPSlot,Ca as Item,wa as ItemActions,Ta as ItemContent,Ea as ItemDescription,Da as ItemFooter,Oa as ItemGroup,ka as ItemHeader,Aa as ItemMedia,ja as ItemSeparator,Ma as ItemTitle,Hr as Label,se as LoadingDialog,Ur as LoginPage,Na as Menubar,Pa as MenubarCheckboxItem,Fa as MenubarContent,Ia as MenubarGroup,La as MenubarItem,Ra as MenubarLabel,za as MenubarMenu,Ba as MenubarPortal,Va as MenubarRadioGroup,Ha as MenubarRadioItem,Ua as MenubarSeparator,Wa as MenubarShortcut,Ga as MenubarSub,Ka as MenubarSubContent,qa as MenubarSubTrigger,Ja as MenubarTrigger,he as MetricRadarChart,ge as MirroredBarChart,Ya as MultipleSelector,O as NameDisplay,Za as NavigationMenu,Qa as NavigationMenuContent,$a as NavigationMenuIndicator,eo as NavigationMenuItem,to as NavigationMenuLink,no as NavigationMenuList,ro as NavigationMenuTrigger,io as NavigationMenuViewport,Lr as NotAuthorized,Rr as NotFound,nr as NumberField,_e as OrdersBarChart,oo as Pagination,so as PaginationContent,co as PaginationEllipsis,lo as PaginationItem,uo as PaginationLink,fo as PaginationNext,po as PaginationPrevious,t as Paragraph,Zn as PasswordField,Nr as PaymentLayout,k as PhoneNumberDisplay,hr as Popover,gr as PopoverAnchor,_r as PopoverClose,vr as PopoverContent,yr as PopoverTrigger,ve as PortfolioAllocationTreemap,ye as PriceRangeAreaChart,p as ProductCard,ua as Progress,mo as RadioGroup,Xn as RadioGroupField,ho as RadioGroupItem,$r as RefreshBtn,Wr as RegisterPage,bn as ResizableHandle,xn as ResizablePanel,Sn as ResizablePanelGroup,be as RevenueAreaChart,xe as RevenueOrdersComposedChart,A as RoleBadge,Se as SalesTargetRadialChart,Ce as SankeyFlowChart,go as ScrollArea,_o as ScrollBar,ni as SearchInput,ut as SearchModal,vo as Select,yo as SelectContent,Wn as SelectField,bo as SelectGroup,xo as SelectItem,So as SelectLabel,Co as SelectSeparator,wo as SelectTrigger,To as SelectValue,Cr as Separator,Tr as Sheet,Er as SheetClose,Dr as SheetContent,Or as SheetDescription,kr as SheetFooter,Ar as SheetHeader,jr as SheetTitle,Mr as SheetTrigger,ur as SimpleArrayField,pr as SimpleBooleanField,m as SimpleCard,Kn as SimpleComboboxField,fr as SimpleDateField,zn as SimpleEmailField,Tn as SimpleNumberField,dr as SimplePasswordField,Bn as SimpleRadioGroupField,Dn as SimpleSelectField,En as SimpleTextField,In as SimpleTextareaField,u as Skeleton,Eo as Slider,we as SparklineChart,yn as Spinner,Te as StackedAreaChart,j as Statistic,ko as Switch,er as SwitchField,Ao as Table,jo as TableBody,Mo as TableCaption,No as TableCell,Po as TableFooter,Fo as TableHead,Io as TableHeader,Lo as TableRow,Ro as Tabs,zo as TabsContent,Bo as TabsList,Vo as TabsTrigger,Cn as TanStackActionSubmit,$n as TanStackActionsForm,Pn as TanStackCardForm,Fn as TanStackContainerForm,Ln as TanStackDialogForm,On as TanStackFieldGroup,jn as TanStackPopoverForm,Nn as TanStackSectionForm,Rn as TanStackTitleField,xr as TextEditor,mr as TextEditorField,br as TextEditorToolbar,wn as TextField,Ho as Textarea,Hn as TextareaField,Y as Title,Do as Toaster,Uo as Toggle,Go as ToggleGroup,Ko as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Ee as TopProductsBarChart,ei as TrashBtn,Xt as UITableAnalysisPanel,Gt as UITableAvatarNameDisplay,Jt as UITableBadgeDisplay,yt as UITableBody,Bt as UITableBooleanDisplay,gt as UITableCell,jt as UITableCellActions,kt as UITableCellSelect,pt as UITableContainer,Nt as UITableCurrencyDisplay,Kt as UITableDateDisplay,Yt as UITableDescriptionDisplay,Ft as UITableEditButton,Ut as UITableEmailDisplay,Tt as UITableEmpty,_t as UITableEmptyDisplay,Zt as UITableFilter,At as UITableFooter,Et as UITableFooterRow,bt as UITableHead,ht as UITableHeadCell,vt as UITableHeadCellOption,wt as UITableHeadCellSelect,St as UITableHeadRow,xt as UITableInnerTable,Vt as UITableInnerWrapper,It as UITableListDisplay,dt as UITableLoadMore,Lt as UITableMoreButton,qt as UITableNameDisplay,Wt as UITablePermalink,zt as UITablePhoneNumberDisplay,Rt as UITableProgressDisplay,mt as UITableProvider,Mt as UITableRemoveButton,Ht as UITableRow,Qt as UITableStatisticDisplay,tn as UITableStatusDisplay,Pt as UITableSummaryBar,en as UITableToggleButton,Dt as UITableTooltip,ft as UITableTooltipActions,$t as UITableTooltipFilter,Ot as UITableUserDataDisplay,Ct as UITableWrapper,ti as UploadImageBtn,F as UserDataDisplay,Yr as VerifyEmailPage,De as VolumeBarChart,Oe as WaterfallChart,x as badgeVariants,mi as buttonGroupVariants,ke as computeIndexedSeries,Ae as formatCompactNumber,je as formatCurrency,Me as formatPercent,Ne as formatSignedPercent,Pe as getChartColor,Fe as getDirectionColor,ao as navigationMenuTriggerStyle,n as paragraphVariants,Ie as toDateLabel,Oo as toast,Wo as toggleVariants,Oi as useChart,Xa as useDebounce,ya as useFormField,kn as useTanStackFieldContext,An as useTanStackForm,Mn as useTanStackFormContext,Vn as withTanStackFieldGroup,Un as withTanStackForm};
@@ -0,0 +1,2 @@
1
+ const e=require("./ui/tooltip.cjs"),t=require("./tables-CS3NhgTc.cjs");let n=require("react/jsx-runtime");const r=({items:r,maxVisible:i=3})=>{if(!r||r.length===0)return(0,n.jsx)(t.Q,{});let a=r.slice(0,i),o=r.slice(i);return(0,n.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[a.map((e,t)=>(0,n.jsx)(`span`,{className:`weak inline-flex items-center rounded border border-border bg-white px-2 py-0.5 text-text-positive text-xs`,children:e},`item-${t.toString()}`)),o.length>0&&(0,n.jsx)(e.TooltipProvider,{children:(0,n.jsxs)(e.Tooltip,{children:[(0,n.jsx)(e.TooltipTrigger,{asChild:!0,children:(0,n.jsxs)(`span`,{className:`inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs`,children:[`+`,o.length,` more`]})}),(0,n.jsx)(e.TooltipContent,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:o.map((e,t)=>(0,n.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs`,children:e},`item-${t.toString()}`))})]})})]})};exports.UITableListDisplay=r;
2
+ //# sourceMappingURL=list-display-DPxZ_Jbf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-display-DPxZ_Jbf.cjs","names":["UITableEmpty","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/list-display.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableListDisplay} component. */\ntype Props = {\n /** Array of strings or numbers to render as inline pills. */\n items: (string | number)[] | null | undefined;\n /**\n * Maximum number of pills shown before a `+N more` overflow badge appears\n * (default: `3`).\n */\n maxVisible?: number;\n};\n\n/**\n * Renders an array of values as compact inline pills in a table cell. When the\n * list exceeds `maxVisible`, a `+N more` badge is shown; hovering it reveals all\n * remaining items in a tooltip. Renders {@link UITableEmpty} for empty or absent\n * arrays.\n *\n * @example\n * import { UITableListDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableListDisplay items={['React', 'TypeScript', 'TailwindCSS', 'Vite']} maxVisible={3} />\n */\nexport const UITableListDisplay: React.FC<Props> = ({ items, maxVisible = 3 }) => {\n if (!items || items.length === 0) return <UITableEmpty />;\n\n const visible = items.slice(0, maxVisible);\n const overflow = items.slice(maxVisible);\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {visible.map((item, i) => (\n <span\n key={`item-${i.toString()}`}\n className=\"weak inline-flex items-center rounded border border-border bg-white px-2 py-0.5 text-text-positive text-xs\"\n >\n {item}\n </span>\n ))}\n\n {overflow.length > 0 && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs\">\n +{overflow.length} more\n </span>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"flex max-w-64 flex-wrap gap-1 p-2\">\n {overflow.map((item, i) => (\n <span\n key={`item-${i.toString()}`}\n className=\"inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs\"\n >\n {item}\n </span>\n ))}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n );\n};\n"],"mappings":"0GA4BA,MAAa,GAAuC,CAAE,QAAO,aAAa,KAAQ,CAChF,GAAI,CAAC,GAAS,EAAM,SAAW,EAAG,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,EAAD,CAAe,CAAA,EAExD,IAAM,EAAU,EAAM,MAAM,EAAG,CAAU,EACnC,EAAW,EAAM,MAAM,CAAU,EAEvC,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,uBAAf,SAAA,CACG,EAAQ,KAAK,EAAM,KAClB,EAAA,EAAA,IAAA,CAAC,OAAD,CAEE,UAAU,6GAET,SAAA,CACG,EAJC,QAAQ,EAAE,SAAS,GAIpB,CACP,EAEA,EAAS,OAAS,IACjB,EAAA,EAAA,IAAA,CAACC,EAAAA,gBAAD,CAAA,UACE,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,GACd,UAAA,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,qHAAhB,SAAA,CAAqI,IACjI,EAAS,OAAO,OACd,GACQ,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,MAAM,QAAQ,UAAU,oCACrC,SAAA,EAAS,KAAK,EAAM,KACnB,EAAA,EAAA,IAAA,CAAC,OAAD,CAEE,UAAU,oGAET,SAAA,CACG,EAJC,QAAQ,EAAE,SAAS,GAIpB,CACP,CACa,CAAA,CACT,CAAA,CAAA,CACM,CAAA,CAEhB,GAET"}
@@ -0,0 +1,2 @@
1
+ import{Tooltip as e,TooltipContent as t,TooltipProvider as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Q as i}from"./tables-7_KgoyS-.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({items:s,maxVisible:c=3})=>{if(!s||s.length===0)return a(i,{});let l=s.slice(0,c),u=s.slice(c);return o(`div`,{className:`flex flex-wrap gap-1`,children:[l.map((e,t)=>a(`span`,{className:`weak inline-flex items-center rounded border border-border bg-white px-2 py-0.5 text-text-positive text-xs`,children:e},`item-${t.toString()}`)),u.length>0&&a(n,{children:o(e,{children:[a(r,{asChild:!0,children:o(`span`,{className:`inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs`,children:[`+`,u.length,` more`]})}),a(t,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:u.map((e,t)=>a(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs`,children:e},`item-${t.toString()}`))})]})})]})};export{s as UITableListDisplay};
2
+ //# sourceMappingURL=list-display-M43N3kle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-display-M43N3kle.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/list-display.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableListDisplay} component. */\ntype Props = {\n /** Array of strings or numbers to render as inline pills. */\n items: (string | number)[] | null | undefined;\n /**\n * Maximum number of pills shown before a `+N more` overflow badge appears\n * (default: `3`).\n */\n maxVisible?: number;\n};\n\n/**\n * Renders an array of values as compact inline pills in a table cell. When the\n * list exceeds `maxVisible`, a `+N more` badge is shown; hovering it reveals all\n * remaining items in a tooltip. Renders {@link UITableEmpty} for empty or absent\n * arrays.\n *\n * @example\n * import { UITableListDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableListDisplay items={['React', 'TypeScript', 'TailwindCSS', 'Vite']} maxVisible={3} />\n */\nexport const UITableListDisplay: React.FC<Props> = ({ items, maxVisible = 3 }) => {\n if (!items || items.length === 0) return <UITableEmpty />;\n\n const visible = items.slice(0, maxVisible);\n const overflow = items.slice(maxVisible);\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {visible.map((item, i) => (\n <span\n key={`item-${i.toString()}`}\n className=\"weak inline-flex items-center rounded border border-border bg-white px-2 py-0.5 text-text-positive text-xs\"\n >\n {item}\n </span>\n ))}\n\n {overflow.length > 0 && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs\">\n +{overflow.length} more\n </span>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"flex max-w-64 flex-wrap gap-1 p-2\">\n {overflow.map((item, i) => (\n <span\n key={`item-${i.toString()}`}\n className=\"inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs\"\n >\n {item}\n </span>\n ))}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n );\n};\n"],"mappings":"oMA4BA,MAAa,GAAuC,CAAE,QAAO,aAAa,KAAQ,CAChF,GAAI,CAAC,GAAS,EAAM,SAAW,EAAG,OAAO,EAAC,EAAD,CAAe,CAAA,EAExD,IAAM,EAAU,EAAM,MAAM,EAAG,CAAU,EACnC,EAAW,EAAM,MAAM,CAAU,EAEvC,OACE,EAAC,MAAD,CAAK,UAAU,uBAAf,SAAA,CACG,EAAQ,KAAK,EAAM,IAClB,EAAC,OAAD,CAEE,UAAU,6GAET,SAAA,CACG,EAJC,QAAQ,EAAE,SAAS,GAIpB,CACP,EAEA,EAAS,OAAS,GACjB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,QAAA,GACd,SAAA,EAAC,OAAD,CAAM,UAAU,qHAAhB,SAAA,CAAqI,IACjI,EAAS,OAAO,OACd,GACQ,CAAA,EAChB,EAAC,EAAD,CAAgB,MAAM,QAAQ,UAAU,oCACrC,SAAA,EAAS,KAAK,EAAM,IACnB,EAAC,OAAD,CAEE,UAAU,oGAET,SAAA,CACG,EAJC,QAAQ,EAAE,SAAS,GAIpB,CACP,CACa,CAAA,CACT,CAAA,CAAA,CACM,CAAA,CAEhB,GAET"}
@@ -1,2 +1,2 @@
1
- const e=require("./typography/paragraph.cjs"),t=require("./ui/tooltip.cjs"),n=require("./tables-078i-X0d.cjs");let r=require("react/jsx-runtime");const i=({name:i})=>i?(0,r.jsxs)(t.Tooltip,{children:[(0,r.jsx)(t.TooltipTrigger,{children:(0,r.jsx)(e.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:i})}),(0,r.jsx)(t.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,r.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,r.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:i}),(0,r.jsxs)(`p`,{className:`w-full text-end`,children:[i.length,` chars`]})]})})]}):(0,r.jsx)(n.Q,{});exports.UITableNameDisplay=i;
2
- //# sourceMappingURL=name-display-B-FtblLL.cjs.map
1
+ const e=require("./typography/paragraph.cjs"),t=require("./ui/tooltip.cjs"),n=require("./tables-CS3NhgTc.cjs");let r=require("react/jsx-runtime");const i=({name:i})=>i?(0,r.jsxs)(t.Tooltip,{children:[(0,r.jsx)(t.TooltipTrigger,{children:(0,r.jsx)(e.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:i})}),(0,r.jsx)(t.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,r.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,r.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:i}),(0,r.jsxs)(`p`,{className:`w-full text-end`,children:[i.length,` chars`]})]})})]}):(0,r.jsx)(n.Q,{});exports.UITableNameDisplay=i;
2
+ //# sourceMappingURL=name-display-BJ1wPUnS.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-display-B-FtblLL.cjs","names":["UITableEmpty","Tooltip","TooltipTrigger","Paragraph","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"kJAqBA,MAAa,GAAkD,CAAE,UAC1D,GAEH,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,0DAC/B,SAAA,CACQ,CAAA,CACG,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,MAAM,QAAQ,UAAU,+BACtC,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,wBAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,2CAA4C,SAAA,CAAQ,CAAA,GACjE,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAU,kBAAb,SAAA,CAAgC,EAAK,OAAO,QAAS,CAClD,CAAA,CAAA,GACS,CAAA,CACT,CAAA,CAAA,GAdO,EAAA,EAAA,IAAA,CAACJ,EAAAA,EAAD,CAAe,CAAA"}
1
+ {"version":3,"file":"name-display-BJ1wPUnS.cjs","names":["UITableEmpty","Tooltip","TooltipTrigger","Paragraph","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"kJAqBA,MAAa,GAAkD,CAAE,UAC1D,GAEH,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,0DAC/B,SAAA,CACQ,CAAA,CACG,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,MAAM,QAAQ,UAAU,+BACtC,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,wBAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,2CAA4C,SAAA,CAAQ,CAAA,GACjE,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAU,kBAAb,SAAA,CAAgC,EAAK,OAAO,QAAS,CAClD,CAAA,CAAA,GACS,CAAA,CACT,CAAA,CAAA,GAdO,EAAA,EAAA,IAAA,CAACJ,EAAAA,EAAD,CAAe,CAAA"}
@@ -1,2 +1,2 @@
1
- import{Paragraph as e}from"./typography/paragraph.mjs";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Q as i}from"./tables-BGzwkdFO.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:s})=>s?o(t,{children:[a(r,{children:a(e,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:s})}),a(n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:o(`div`,{className:`flex flex-col gap-y-2`,children:[a(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:s}),o(`p`,{className:`w-full text-end`,children:[s.length,` chars`]})]})})]}):a(i,{});export{s as UITableNameDisplay};
2
- //# sourceMappingURL=name-display-CB9XAhXP.mjs.map
1
+ import{Paragraph as e}from"./typography/paragraph.mjs";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Q as i}from"./tables-7_KgoyS-.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:s})=>s?o(t,{children:[a(r,{children:a(e,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:s})}),a(n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:o(`div`,{className:`flex flex-col gap-y-2`,children:[a(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:s}),o(`p`,{className:`w-full text-end`,children:[s.length,` chars`]})]})})]}):a(i,{});export{s as UITableNameDisplay};
2
+ //# sourceMappingURL=name-display-pWhLLS05.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-display-CB9XAhXP.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"sOAqBA,MAAa,GAAkD,CAAE,UAC1D,EAEH,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,0DAC/B,SAAA,CACQ,CAAA,CACG,CAAA,EAChB,EAAC,EAAD,CAAgB,MAAM,QAAQ,UAAU,+BACtC,SAAA,EAAC,MAAD,CAAK,UAAU,wBAAf,SAAA,CACE,EAAC,IAAD,CAAG,UAAU,2CAA4C,SAAA,CAAQ,CAAA,EACjE,EAAC,IAAD,CAAG,UAAU,kBAAb,SAAA,CAAgC,EAAK,OAAO,QAAS,CAClD,CAAA,CAAA,GACS,CAAA,CACT,CAAA,CAAA,EAdO,EAAC,EAAD,CAAe,CAAA"}
1
+ {"version":3,"file":"name-display-pWhLLS05.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"sOAqBA,MAAa,GAAkD,CAAE,UAC1D,EAEH,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,0DAC/B,SAAA,CACQ,CAAA,CACG,CAAA,EAChB,EAAC,EAAD,CAAgB,MAAM,QAAQ,UAAU,+BACtC,SAAA,EAAC,MAAD,CAAK,UAAU,wBAAf,SAAA,CACE,EAAC,IAAD,CAAG,UAAU,2CAA4C,SAAA,CAAQ,CAAA,EACjE,EAAC,IAAD,CAAG,UAAU,kBAAb,SAAA,CAAgC,EAAK,OAAO,QAAS,CAClD,CAAA,CAAA,GACS,CAAA,CACT,CAAA,CAAA,EAdO,EAAC,EAAD,CAAe,CAAA"}
@@ -1,2 +1,2 @@
1
- import{Q as e}from"./tables-BGzwkdFO.mjs";import{ExternalLinkIcon as t}from"lucide-react";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({href:i,label:a})=>i?r(`a`,{href:i,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[n(`span`,{children:a||i}),n(t,{size:14})]}):n(e,{});export{i as UITablePermalink};
2
- //# sourceMappingURL=permalink-I-INEarM.mjs.map
1
+ import{Q as e}from"./tables-7_KgoyS-.mjs";import{ExternalLinkIcon as t}from"lucide-react";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({href:i,label:a})=>i?r(`a`,{href:i,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[n(`span`,{children:a||i}),n(t,{size:14})]}):n(e,{});export{i as UITablePermalink};
2
+ //# sourceMappingURL=permalink-BaMvnKIz.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"permalink-I-INEarM.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/permalink.tsx"],"sourcesContent":["import { ExternalLinkIcon } from 'lucide-react';\n\nimport { UITableEmpty } from './empty';\n\n/**\n * Renders an external-link anchor with an icon for use in table cells, opening\n * the target URL in a new tab with safe `rel` attributes. Renders\n * {@link UITableEmpty} when `href` is absent.\n *\n * @example\n * import { UITablePermalink } from '@customafk/lunas-ui/features/tables';\n *\n * <UITablePermalink href=\"https://example.com/records/42\" label=\"View record\" />\n */\nexport const UITablePermalink: React.FC<{\n /** The destination URL the anchor navigates to; `null`/`undefined`/empty renders an empty state. */\n href: string | null | undefined;\n /** Optional display text; falls back to the raw `href` when omitted. */\n label?: string;\n}> = ({ href, label }) => {\n if (!href) return <UITableEmpty />;\n\n return (\n <a href={href} target=\"_blank\" className=\"inline-flex items-center gap-1 truncate text-primary text-sm underline\" rel=\"noopener noreferrer\">\n <span>{label || href}</span>\n <ExternalLinkIcon size={14} />\n </a>\n );\n};\n"],"mappings":"4IAcA,MAAa,GAKP,CAAE,OAAM,WACP,EAGH,EAAC,IAAD,CAAS,OAAM,OAAO,SAAS,UAAU,yEAAyE,IAAI,sBAAtH,SAAA,CACE,EAAC,OAAD,CAAA,SAAO,GAAS,CAAW,CAAA,EAC3B,EAAC,EAAD,CAAkB,KAAM,EAAK,CAAA,CAC5B,IANa,EAAC,EAAD,CAAe,CAAA"}
1
+ {"version":3,"file":"permalink-BaMvnKIz.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/permalink.tsx"],"sourcesContent":["import { ExternalLinkIcon } from 'lucide-react';\n\nimport { UITableEmpty } from './empty';\n\n/**\n * Renders an external-link anchor with an icon for use in table cells, opening\n * the target URL in a new tab with safe `rel` attributes. Renders\n * {@link UITableEmpty} when `href` is absent.\n *\n * @example\n * import { UITablePermalink } from '@customafk/lunas-ui/features/tables';\n *\n * <UITablePermalink href=\"https://example.com/records/42\" label=\"View record\" />\n */\nexport const UITablePermalink: React.FC<{\n /** The destination URL the anchor navigates to; `null`/`undefined`/empty renders an empty state. */\n href: string | null | undefined;\n /** Optional display text; falls back to the raw `href` when omitted. */\n label?: string;\n}> = ({ href, label }) => {\n if (!href) return <UITableEmpty />;\n\n return (\n <a href={href} target=\"_blank\" className=\"inline-flex items-center gap-1 truncate text-primary text-sm underline\" rel=\"noopener noreferrer\">\n <span>{label || href}</span>\n <ExternalLinkIcon size={14} />\n </a>\n );\n};\n"],"mappings":"4IAcA,MAAa,GAKP,CAAE,OAAM,WACP,EAGH,EAAC,IAAD,CAAS,OAAM,OAAO,SAAS,UAAU,yEAAyE,IAAI,sBAAtH,SAAA,CACE,EAAC,OAAD,CAAA,SAAO,GAAS,CAAW,CAAA,EAC3B,EAAC,EAAD,CAAkB,KAAM,EAAK,CAAA,CAC5B,IANa,EAAC,EAAD,CAAe,CAAA"}
@@ -1,2 +1,2 @@
1
- const e=require("./tables-078i-X0d.cjs");let t=require("lucide-react"),n=require("react/jsx-runtime");const r=({href:r,label:i})=>r?(0,n.jsxs)(`a`,{href:r,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[(0,n.jsx)(`span`,{children:i||r}),(0,n.jsx)(t.ExternalLinkIcon,{size:14})]}):(0,n.jsx)(e.Q,{});exports.UITablePermalink=r;
2
- //# sourceMappingURL=permalink-CUIKG9VA.cjs.map
1
+ const e=require("./tables-CS3NhgTc.cjs");let t=require("lucide-react"),n=require("react/jsx-runtime");const r=({href:r,label:i})=>r?(0,n.jsxs)(`a`,{href:r,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[(0,n.jsx)(`span`,{children:i||r}),(0,n.jsx)(t.ExternalLinkIcon,{size:14})]}):(0,n.jsx)(e.Q,{});exports.UITablePermalink=r;
2
+ //# sourceMappingURL=permalink-CMcI__V4.cjs.map