@mastra/playground-ui 51.4.0-alpha.9 → 52.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +34 -0
  2. package/dist/components/ListSearch.cjs.js +3 -65
  3. package/dist/components/ListSearch.cjs.js.map +1 -1
  4. package/dist/components/ListSearch.es.js +1 -67
  5. package/dist/components/ListSearch.es.js.map +1 -1
  6. package/dist/components/PageLayout.cjs.js +3 -97
  7. package/dist/components/PageLayout.cjs.js.map +1 -1
  8. package/dist/components/PageLayout.es.js +2 -101
  9. package/dist/components/PageLayout.es.js.map +1 -1
  10. package/dist/components/Section.cjs.js +1 -1
  11. package/dist/components/Section.es.js +1 -1
  12. package/dist/components/SideDialog.cjs.js +1 -1
  13. package/dist/components/SideDialog.es.js +1 -1
  14. package/dist/components/Switch.cjs.js +2 -118
  15. package/dist/components/Switch.cjs.js.map +1 -1
  16. package/dist/components/Switch.es.js +1 -102
  17. package/dist/components/Switch.es.js.map +1 -1
  18. package/dist/components/Textarea.cjs.js +2 -77
  19. package/dist/components/Textarea.cjs.js.map +1 -1
  20. package/dist/components/Textarea.es.js +1 -61
  21. package/dist/components/Textarea.es.js.map +1 -1
  22. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +79 -0
  23. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -0
  24. package/dist/ee/signals/components/entity-index-compact-grid.d.ts +2 -0
  25. package/dist/ee/signals/components/entity-index-compact-grid.es.js +75 -0
  26. package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -0
  27. package/dist/ee/signals/components/entity-index-list.cjs.js +56 -0
  28. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -0
  29. package/dist/ee/signals/components/entity-index-list.d.ts +2 -0
  30. package/dist/ee/signals/components/entity-index-list.es.js +52 -0
  31. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -0
  32. package/dist/ee/signals/components/entity-index-model.cjs.js +33 -0
  33. package/dist/ee/signals/components/entity-index-model.cjs.js.map +1 -0
  34. package/dist/ee/signals/components/entity-index-model.d.ts +2 -0
  35. package/dist/ee/signals/components/entity-index-model.es.js +27 -0
  36. package/dist/ee/signals/components/entity-index-model.es.js.map +1 -0
  37. package/dist/ee/signals/components/signals-empty-state.cjs.js +65 -25
  38. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  39. package/dist/ee/signals/components/signals-empty-state.es.js +67 -28
  40. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  41. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +132 -0
  42. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js.map +1 -0
  43. package/dist/ee/signals/components/trace-intelligence-entity-detail.d.ts +2 -0
  44. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +128 -0
  45. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -0
  46. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +173 -0
  47. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -0
  48. package/dist/ee/signals/components/trace-intelligence-entity-index.d.ts +2 -0
  49. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +169 -0
  50. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -0
  51. package/dist/ee/signals/components.cjs.js +4 -0
  52. package/dist/ee/signals/components.cjs.js.map +1 -1
  53. package/dist/ee/signals/components.es.js +2 -0
  54. package/dist/ee/signals/components.es.js.map +1 -1
  55. package/dist/ee/signals/sankey-signals.cjs.js +45 -11
  56. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  57. package/dist/ee/signals/sankey-signals.es.js +46 -12
  58. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  59. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +161 -0
  60. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -0
  61. package/dist/ee/signals/settings/signal-definition-form-dialog.d.ts +2 -0
  62. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +157 -0
  63. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -0
  64. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +226 -0
  65. package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -0
  66. package/dist/ee/signals/settings/trace-signal-settings.d.ts +2 -0
  67. package/dist/ee/signals/settings/trace-signal-settings.es.js +221 -0
  68. package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -0
  69. package/dist/ee/signals/settings/use-signal-management.cjs.js +53 -0
  70. package/dist/ee/signals/settings/use-signal-management.cjs.js.map +1 -0
  71. package/dist/ee/signals/settings/use-signal-management.d.ts +2 -0
  72. package/dist/ee/signals/settings/use-signal-management.es.js +48 -0
  73. package/dist/ee/signals/settings/use-signal-management.es.js.map +1 -0
  74. package/dist/ee/signals/settings.cjs.js +11 -0
  75. package/dist/ee/signals/settings.cjs.js.map +1 -0
  76. package/dist/ee/signals/settings.d.ts +2 -0
  77. package/dist/ee/signals/settings.es.js +2 -0
  78. package/dist/ee/signals/settings.es.js.map +1 -0
  79. package/dist/ee/signals/signal-colors.cjs.js +17 -1
  80. package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
  81. package/dist/ee/signals/signal-colors.es.js +17 -1
  82. package/dist/ee/signals/signal-colors.es.js.map +1 -1
  83. package/dist/ee/signals/signal-delta-column.cjs.js +6 -3
  84. package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
  85. package/dist/ee/signals/signal-delta-column.es.js +7 -4
  86. package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
  87. package/dist/ee/signals/signal-formatting.cjs.js +71 -9
  88. package/dist/ee/signals/signal-formatting.cjs.js.map +1 -1
  89. package/dist/ee/signals/signal-formatting.es.js +68 -10
  90. package/dist/ee/signals/signal-formatting.es.js.map +1 -1
  91. package/dist/ee/signals/signal-lifelines.cjs.js +7 -3
  92. package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
  93. package/dist/ee/signals/signal-lifelines.es.js +8 -4
  94. package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
  95. package/dist/ee/signals/sortable-signal-headers.cjs.js +4 -2
  96. package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
  97. package/dist/ee/signals/sortable-signal-headers.es.js +5 -3
  98. package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
  99. package/dist/ee/signals/theme-detail-panel.cjs.js +8 -5
  100. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  101. package/dist/ee/signals/theme-detail-panel.es.js +9 -6
  102. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  103. package/dist/ee/signals/theme-filter-banner.cjs.js +7 -5
  104. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
  105. package/dist/ee/signals/theme-filter-banner.es.js +8 -6
  106. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
  107. package/dist/ee/signals/trace-insight-view.cjs.js +2 -1
  108. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  109. package/dist/ee/signals/trace-insight-view.es.js +3 -2
  110. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  111. package/dist/ee/signals/trace-intelligence-context.cjs.js +6 -2
  112. package/dist/ee/signals/trace-intelligence-context.cjs.js.map +1 -1
  113. package/dist/ee/signals/trace-intelligence-context.es.js +6 -2
  114. package/dist/ee/signals/trace-intelligence-context.es.js.map +1 -1
  115. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +15 -5
  116. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  117. package/dist/ee/signals/trace-intelligence-explainer.es.js +16 -6
  118. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  119. package/dist/ee/signals/trace-intelligence-provider.cjs.js +9 -2
  120. package/dist/ee/signals/trace-intelligence-provider.cjs.js.map +1 -1
  121. package/dist/ee/signals/trace-intelligence-provider.es.js +10 -3
  122. package/dist/ee/signals/trace-intelligence-provider.es.js.map +1 -1
  123. package/dist/ee/signals.cjs.js +20 -0
  124. package/dist/ee/signals.cjs.js.map +1 -1
  125. package/dist/ee/signals.es.js +4 -1
  126. package/dist/ee/signals.es.js.map +1 -1
  127. package/dist/list-search-DpTXULK9.js +68 -0
  128. package/dist/list-search-DpTXULK9.js.map +1 -0
  129. package/dist/list-search-DqDHI-tP.cjs +70 -0
  130. package/dist/list-search-DqDHI-tP.cjs.map +1 -0
  131. package/dist/no-data-page-layout-CBJ50ULk.cjs +104 -0
  132. package/dist/no-data-page-layout-CBJ50ULk.cjs.map +1 -0
  133. package/dist/no-data-page-layout-CkhD1Xwb.js +101 -0
  134. package/dist/no-data-page-layout-CkhD1Xwb.js.map +1 -0
  135. package/dist/{section-D963QL3h.js → section-BXEB4HRl.js} +3 -3
  136. package/dist/section-BXEB4HRl.js.map +1 -0
  137. package/dist/{section-LbaBW2X3.cjs → section-CzPerGGn.cjs} +3 -3
  138. package/dist/section-CzPerGGn.cjs.map +1 -0
  139. package/dist/src/ee/signals/components/entity-index-compact-grid.d.ts +9 -0
  140. package/dist/src/ee/signals/components/entity-index-list.d.ts +9 -0
  141. package/dist/src/ee/signals/components/entity-index-model.d.ts +12 -0
  142. package/dist/src/ee/signals/components/index.d.ts +2 -0
  143. package/dist/src/ee/signals/components/signals-empty-state.d.ts +8 -11
  144. package/dist/src/ee/signals/components/trace-intelligence-entity-detail.d.ts +9 -0
  145. package/dist/src/ee/signals/components/trace-intelligence-entity-index.d.ts +16 -0
  146. package/dist/src/ee/signals/index.d.ts +2 -1
  147. package/dist/src/ee/signals/settings/index.d.ts +1 -0
  148. package/dist/src/ee/signals/settings/signal-definition-form-dialog.d.ts +11 -0
  149. package/dist/src/ee/signals/settings/trace-signal-settings.d.ts +7 -0
  150. package/dist/src/ee/signals/settings/use-signal-management.d.ts +15 -0
  151. package/dist/src/ee/signals/signal-colors.d.ts +1 -1
  152. package/dist/src/ee/signals/signal-formatting.d.ts +13 -5
  153. package/dist/src/ee/signals/trace-intelligence-context.d.ts +12 -0
  154. package/dist/src/ee/signals/trace-intelligence-explainer.d.ts +4 -1
  155. package/dist/src/ee/signals/trace-intelligence-provider.d.ts +5 -2
  156. package/dist/style.css +74 -10
  157. package/dist/switch-By6WMAqn.js +103 -0
  158. package/dist/switch-By6WMAqn.js.map +1 -0
  159. package/dist/switch-DS4BaB8F.cjs +124 -0
  160. package/dist/switch-DS4BaB8F.cjs.map +1 -0
  161. package/dist/textarea-CV04T7qO.js +62 -0
  162. package/dist/textarea-CV04T7qO.js.map +1 -0
  163. package/dist/textarea-CcedmBFp.cjs +83 -0
  164. package/dist/textarea-CcedmBFp.cjs.map +1 -0
  165. package/package.json +7 -7
  166. package/dist/section-D963QL3h.js.map +0 -1
  167. package/dist/section-LbaBW2X3.cjs.map +0 -1
  168. /package/dist/{Switch.css → switch.css} +0 -0
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # @mastra/playground-ui
2
+
3
+ Reusable React components, hooks, domains, and design tokens used by Mastra Studio. It provides the UI building blocks for logs, memory, metrics, traces, and agent management.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @mastra/playground-ui
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ Import the package styles once in your React application.
14
+
15
+ ```tsx
16
+ import '@mastra/playground-ui/style.css';
17
+ import { Button } from '@mastra/playground-ui/components/Button';
18
+
19
+ export function SaveButton() {
20
+ return <Button>Save</Button>;
21
+ }
22
+ ```
23
+
24
+ ## Documentation
25
+
26
+ This README is the package guide. Import the global stylesheet once, then use the package's explicit `components/*`, `domains/*`, `hooks/*`, `icons/*`, `primitives/*`, `store/*`, `tokens`, and `utils/*` entry points rather than a package-root import.
27
+
28
+ ## Changelog
29
+
30
+ See the [package changelog](https://github.com/mastra-ai/mastra/blob/main/packages/playground-ui/CHANGELOG.md) for version history and release notes.
31
+
32
+ ## Support
33
+
34
+ We have an [open community Discord](https://discord.gg/mastra-ai). Come and say hello and let us know if you have any questions or need any help getting things running.
@@ -2,71 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const React = require('react');
7
- const useDebounce = require('use-debounce');
8
- const searchFieldBlock = require('../search-field-block-CiinIsub.cjs');
9
- const keyboard_useKeydown = require('../keyboard/use-keydown.cjs.js');
5
+ const listSearch = require('../list-search-DqDHI-tP.cjs');
10
6
 
11
- const ListSearch = ({
12
- onSearch,
13
- label,
14
- placeholder,
15
- debounceMs = 300,
16
- size,
17
- value: controlledValue,
18
- variant = "outline",
19
- shortcutDisabled = false
20
- }) => {
21
- const id = React.useId();
22
- const [internalValue, setInternalValue] = React.useState(controlledValue ?? "");
23
- const inputRef = React.useRef(null);
24
- keyboard_useKeydown.useKeydown({
25
- "mod+shift+f": () => {
26
- if (shortcutDisabled) return;
27
- inputRef.current?.focus();
28
- inputRef.current?.select();
29
- }
30
- });
31
- const debouncedSearch = useDebounce.useDebouncedCallback((val) => {
32
- onSearch(val);
33
- }, debounceMs);
34
- React.useEffect(() => {
35
- if (controlledValue !== void 0) {
36
- debouncedSearch.cancel();
37
- setInternalValue(controlledValue);
38
- }
39
- }, [controlledValue, debouncedSearch]);
40
- React.useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);
41
- const handleChange = React.useCallback(
42
- (e) => {
43
- setInternalValue(e.target.value);
44
- debouncedSearch(e.target.value);
45
- },
46
- [debouncedSearch]
47
- );
48
- const handleReset = React.useCallback(() => {
49
- setInternalValue("");
50
- onSearch("");
51
- debouncedSearch.cancel();
52
- }, [onSearch, debouncedSearch]);
53
- return /* @__PURE__ */ jsxRuntime.jsx(
54
- searchFieldBlock.SearchFieldBlock,
55
- {
56
- name: id,
57
- label,
58
- labelIsHidden: true,
59
- placeholder,
60
- value: internalValue,
61
- onChange: handleChange,
62
- onReset: handleReset,
63
- size,
64
- variant,
65
- inputRef,
66
- className: "w-full max-w-120"
67
- }
68
- );
69
- };
70
7
 
71
- exports.ListSearch = ListSearch;
8
+
9
+ exports.ListSearch = listSearch.ListSearch;
72
10
  //# sourceMappingURL=ListSearch.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListSearch.cjs.js","sources":["../../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n variant?: InputProps['variant'];\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n variant = 'outline',\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown({\n 'mod+shift+f': () => {\n if (shortcutDisabled) return;\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n });\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n variant={variant}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":["useId","useState","useRef","useKeydown","useDebouncedCallback","useEffect","useCallback","jsx","SearchFieldBlock"],"mappings":";;;;;;;;;;AA0BO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAKA,WAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAE9C,EAAAC,8BAAA,CAAW;AAAA,IACT,eAAe,MAAM;AACnB,MAAA,IAAI,gBAAA,EAAkB;AACtB,MAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,MAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,IAC3B;AAAA,GACD,CAAA;AAED,EAAA,MAAM,eAAA,GAAkBC,gCAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAAA,eAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAcA,kBAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACEC,cAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"ListSearch.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,68 +1,2 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useId, useState, useRef, useEffect, useCallback } from 'react';
3
- import { useDebouncedCallback } from 'use-debounce';
4
- import { S as SearchFieldBlock } from '../search-field-block-D51aN1d9.js';
5
- import { useKeydown } from '../keyboard/use-keydown.es.js';
6
-
7
- const ListSearch = ({
8
- onSearch,
9
- label,
10
- placeholder,
11
- debounceMs = 300,
12
- size,
13
- value: controlledValue,
14
- variant = "outline",
15
- shortcutDisabled = false
16
- }) => {
17
- const id = useId();
18
- const [internalValue, setInternalValue] = useState(controlledValue ?? "");
19
- const inputRef = useRef(null);
20
- useKeydown({
21
- "mod+shift+f": () => {
22
- if (shortcutDisabled) return;
23
- inputRef.current?.focus();
24
- inputRef.current?.select();
25
- }
26
- });
27
- const debouncedSearch = useDebouncedCallback((val) => {
28
- onSearch(val);
29
- }, debounceMs);
30
- useEffect(() => {
31
- if (controlledValue !== void 0) {
32
- debouncedSearch.cancel();
33
- setInternalValue(controlledValue);
34
- }
35
- }, [controlledValue, debouncedSearch]);
36
- useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);
37
- const handleChange = useCallback(
38
- (e) => {
39
- setInternalValue(e.target.value);
40
- debouncedSearch(e.target.value);
41
- },
42
- [debouncedSearch]
43
- );
44
- const handleReset = useCallback(() => {
45
- setInternalValue("");
46
- onSearch("");
47
- debouncedSearch.cancel();
48
- }, [onSearch, debouncedSearch]);
49
- return /* @__PURE__ */ jsx(
50
- SearchFieldBlock,
51
- {
52
- name: id,
53
- label,
54
- labelIsHidden: true,
55
- placeholder,
56
- value: internalValue,
57
- onChange: handleChange,
58
- onReset: handleReset,
59
- size,
60
- variant,
61
- inputRef,
62
- className: "w-full max-w-120"
63
- }
64
- );
65
- };
66
-
67
- export { ListSearch };
1
+ export { L as ListSearch } from '../list-search-DpTXULK9.js';
68
2
  //# sourceMappingURL=ListSearch.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListSearch.es.js","sources":["../../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport type { InputProps } from '@/ds/components/Input';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: InputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n variant?: InputProps['variant'];\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n variant = 'outline',\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const id = useId();\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown({\n 'mod+shift+f': () => {\n if (shortcutDisabled) return;\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n });\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setInternalValue(e.target.value);\n debouncedSearch(e.target.value);\n },\n [debouncedSearch],\n );\n\n const handleReset = useCallback(() => {\n setInternalValue('');\n onSearch('');\n debouncedSearch.cancel();\n }, [onSearch, debouncedSearch]);\n\n return (\n <SearchFieldBlock\n name={id}\n label={label}\n labelIsHidden\n placeholder={placeholder}\n value={internalValue}\n onChange={handleChange}\n onReset={handleReset}\n size={size}\n variant={variant}\n inputRef={inputRef}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;AA0BO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,UAAA,CAAW;AAAA,IACT,eAAe,MAAM;AACnB,MAAA,IAAI,gBAAA,EAAkB;AACtB,MAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,MAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,IAC3B;AAAA,GACD,CAAA;AAED,EAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,CAAA,KAA2C;AAC1C,MAAA,gBAAA,CAAiB,CAAA,CAAE,OAAO,KAAK,CAAA;AAC/B,MAAA,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,gBAAA,CAAiB,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,eAAA,CAAgB,MAAA,EAAO;AAAA,EACzB,CAAA,EAAG,CAAC,QAAA,EAAU,eAAe,CAAC,CAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,EAAA;AAAA,MACN,KAAA;AAAA,MACA,aAAA,EAAa,IAAA;AAAA,MACb,WAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"ListSearch.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -2,107 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const utils_cn = require('../cn-DCPcv4xv.cjs');
5
+ const noDataPageLayout = require('../no-data-page-layout-CBJ50ULk.cjs');
7
6
  const pageHeadingContext = require('../page-heading-context-Du-CpxAx.cjs');
8
- const index = require('../index-BRtrE4oe.cjs');
9
7
 
10
- function PageLayoutColumn({ children, className }) {
11
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("grid content-start", className), children });
12
- }
13
8
 
14
- function PageLayoutMainArea({ children, className, isCentered = false }) {
15
- return /* @__PURE__ */ jsxRuntime.jsx(
16
- "div",
17
- {
18
- className: utils_cn.cn(
19
- "overflow-auto",
20
- {
21
- "flex items-center justify-center": isCentered
22
- },
23
- className
24
- ),
25
- children
26
- }
27
- );
28
- }
29
-
30
- function PageLayoutRoot({
31
- children,
32
- className,
33
- width = "default",
34
- height = "default"
35
- }) {
36
- const pageHeading = pageHeadingContext.usePageHeading();
37
- return /* @__PURE__ */ jsxRuntime.jsxs(
38
- "main",
39
- {
40
- className: utils_cn.cn(
41
- "grid w-full grid-rows-[auto_auto] content-start p-6",
42
- {
43
- "max-w-screen-lg mx-auto pt-8": width === "narrow",
44
- "h-full grid-rows-[auto_1fr] overflow-y-auto": height === "full"
45
- },
46
- className
47
- // 'LAYOUT_ROOT border border-dashed border-orange-400',
48
- ),
49
- children: [
50
- pageHeading && /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "sr-only", children: pageHeading }),
51
- children
52
- ]
53
- }
54
- );
55
- }
56
-
57
- const pageLayoutRowVariants = index.cva("flex justify-between gap-3", {
58
- variants: {
59
- align: {
60
- start: "items-start",
61
- center: "items-center"
62
- },
63
- stack: {
64
- horizontal: "flex-row",
65
- responsive: "flex-col items-stretch sm:flex-row"
66
- }
67
- },
68
- compoundVariants: [
69
- {
70
- stack: "responsive",
71
- align: "start",
72
- class: "sm:items-start"
73
- },
74
- {
75
- stack: "responsive",
76
- align: "center",
77
- class: "sm:items-center"
78
- }
79
- ],
80
- defaultVariants: {
81
- align: "start",
82
- stack: "horizontal"
83
- }
84
- });
85
- function PageLayoutRow({ children, className, align, stack }) {
86
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn(pageLayoutRowVariants({ align, stack }), className), children });
87
- }
88
-
89
- function PageLayoutTopArea({ children, className }) {
90
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("grid gap-4 pb-4", className), children });
91
- }
92
-
93
- const PageLayout = Object.assign(PageLayoutRoot, {
94
- TopArea: PageLayoutTopArea,
95
- MainArea: PageLayoutMainArea,
96
- Column: PageLayoutColumn,
97
- Row: PageLayoutRow
98
- });
99
-
100
- function NoDataPageLayout({ children }) {
101
- return /* @__PURE__ */ jsxRuntime.jsx(PageLayout, { width: "wide", height: "full", className: "grid-rows-[1fr]", children: /* @__PURE__ */ jsxRuntime.jsx(PageLayout.MainArea, { isCentered: true, children }) });
102
- }
103
9
 
10
+ exports.NoDataPageLayout = noDataPageLayout.NoDataPageLayout;
11
+ exports.PageLayout = noDataPageLayout.PageLayout;
104
12
  exports.PageHeadingContext = pageHeadingContext.PageHeadingContext;
105
13
  exports.usePageHeading = pageHeadingContext.usePageHeading;
106
- exports.NoDataPageLayout = NoDataPageLayout;
107
- exports.PageLayout = PageLayout;
108
14
  //# sourceMappingURL=PageLayout.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout.cjs.js","sources":["../../src/ds/components/PageLayout/page-layout-column.tsx","../../src/ds/components/PageLayout/page-layout-main-area.tsx","../../src/ds/components/PageLayout/page-layout-root.tsx","../../src/ds/components/PageLayout/page-layout-row.tsx","../../src/ds/components/PageLayout/page-layout-top-area.tsx","../../src/ds/components/PageLayout/page-layout.tsx","../../src/ds/components/PageLayout/no-data-page-layout.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type PageLayoutColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function PageLayoutColumn({ children, className }: PageLayoutColumnProps) {\n return <div className={cn('grid content-start', className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type PageLayoutMainAreaProps = {\n children: ReactNode;\n className?: string;\n isCentered?: boolean;\n};\n\nexport function PageLayoutMainArea({ children, className, isCentered = false }: PageLayoutMainAreaProps) {\n return (\n <div\n className={cn(\n 'overflow-auto',\n {\n 'flex items-center justify-center': isCentered,\n },\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { usePageHeading } from './page-heading-context';\nimport { cn } from '@/lib/utils';\n\nexport function PageLayoutRoot({\n children,\n className,\n width = 'default',\n height = 'default',\n}: {\n children: ReactNode;\n className?: string;\n width?: 'default' | 'narrow' | 'wide';\n height?: 'default' | 'full';\n}) {\n const pageHeading = usePageHeading();\n\n return (\n <main\n className={cn(\n 'grid w-full grid-rows-[auto_auto] content-start p-6',\n {\n 'max-w-screen-lg mx-auto pt-8': width === 'narrow',\n 'h-full grid-rows-[auto_1fr] overflow-y-auto': height === 'full',\n },\n className,\n // 'LAYOUT_ROOT border border-dashed border-orange-400',\n )}\n >\n {pageHeading && <h1 className=\"sr-only\">{pageHeading}</h1>}\n {children}\n </main>\n );\n}\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst pageLayoutRowVariants = cva('flex justify-between gap-3', {\n variants: {\n align: {\n start: 'items-start',\n center: 'items-center',\n },\n stack: {\n horizontal: 'flex-row',\n responsive: 'flex-col items-stretch sm:flex-row',\n },\n },\n compoundVariants: [\n {\n stack: 'responsive',\n align: 'start',\n class: 'sm:items-start',\n },\n {\n stack: 'responsive',\n align: 'center',\n class: 'sm:items-center',\n },\n ],\n defaultVariants: {\n align: 'start',\n stack: 'horizontal',\n },\n});\n\nexport type PageLayoutRowProps = {\n children?: React.ReactNode;\n className?: string;\n} & VariantProps<typeof pageLayoutRowVariants>;\n\nexport function PageLayoutRow({ children, className, align, stack }: PageLayoutRowProps) {\n return <div className={cn(pageLayoutRowVariants({ align, stack }), className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function PageLayoutTopArea({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('grid gap-4 pb-4', className)}>{children}</div>;\n}\n","import { PageLayoutColumn } from './page-layout-column';\nimport { PageLayoutMainArea } from './page-layout-main-area';\nimport { PageLayoutRoot } from './page-layout-root';\nimport { PageLayoutRow } from './page-layout-row';\nimport { PageLayoutTopArea } from './page-layout-top-area';\n\nexport const PageLayout = Object.assign(PageLayoutRoot, {\n TopArea: PageLayoutTopArea,\n MainArea: PageLayoutMainArea,\n Column: PageLayoutColumn,\n Row: PageLayoutRow,\n});\n","import type { ReactNode } from 'react';\nimport { PageLayout } from './page-layout';\n\nexport function NoDataPageLayout({ children }: { title?: string; icon?: ReactNode; children: ReactNode }) {\n return (\n <PageLayout width=\"wide\" height=\"full\" className=\"grid-rows-[1fr]\">\n <PageLayout.MainArea isCentered>{children}</PageLayout.MainArea>\n </PageLayout>\n );\n}\n"],"names":["cn","jsx","usePageHeading","jsxs","cva"],"mappings":"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"}
1
+ {"version":3,"file":"PageLayout.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,102 +1,3 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { c as cn } from '../cn-B4oPhFx9.js';
3
- import { u as usePageHeading } from '../page-heading-context-D3yjYoJE.js';
4
- export { P as PageHeadingContext } from '../page-heading-context-D3yjYoJE.js';
5
- import { c as cva } from '../index-DsNrjFJd.js';
6
-
7
- function PageLayoutColumn({ children, className }) {
8
- return /* @__PURE__ */ jsx("div", { className: cn("grid content-start", className), children });
9
- }
10
-
11
- function PageLayoutMainArea({ children, className, isCentered = false }) {
12
- return /* @__PURE__ */ jsx(
13
- "div",
14
- {
15
- className: cn(
16
- "overflow-auto",
17
- {
18
- "flex items-center justify-center": isCentered
19
- },
20
- className
21
- ),
22
- children
23
- }
24
- );
25
- }
26
-
27
- function PageLayoutRoot({
28
- children,
29
- className,
30
- width = "default",
31
- height = "default"
32
- }) {
33
- const pageHeading = usePageHeading();
34
- return /* @__PURE__ */ jsxs(
35
- "main",
36
- {
37
- className: cn(
38
- "grid w-full grid-rows-[auto_auto] content-start p-6",
39
- {
40
- "max-w-screen-lg mx-auto pt-8": width === "narrow",
41
- "h-full grid-rows-[auto_1fr] overflow-y-auto": height === "full"
42
- },
43
- className
44
- // 'LAYOUT_ROOT border border-dashed border-orange-400',
45
- ),
46
- children: [
47
- pageHeading && /* @__PURE__ */ jsx("h1", { className: "sr-only", children: pageHeading }),
48
- children
49
- ]
50
- }
51
- );
52
- }
53
-
54
- const pageLayoutRowVariants = cva("flex justify-between gap-3", {
55
- variants: {
56
- align: {
57
- start: "items-start",
58
- center: "items-center"
59
- },
60
- stack: {
61
- horizontal: "flex-row",
62
- responsive: "flex-col items-stretch sm:flex-row"
63
- }
64
- },
65
- compoundVariants: [
66
- {
67
- stack: "responsive",
68
- align: "start",
69
- class: "sm:items-start"
70
- },
71
- {
72
- stack: "responsive",
73
- align: "center",
74
- class: "sm:items-center"
75
- }
76
- ],
77
- defaultVariants: {
78
- align: "start",
79
- stack: "horizontal"
80
- }
81
- });
82
- function PageLayoutRow({ children, className, align, stack }) {
83
- return /* @__PURE__ */ jsx("div", { className: cn(pageLayoutRowVariants({ align, stack }), className), children });
84
- }
85
-
86
- function PageLayoutTopArea({ children, className }) {
87
- return /* @__PURE__ */ jsx("div", { className: cn("grid gap-4 pb-4", className), children });
88
- }
89
-
90
- const PageLayout = Object.assign(PageLayoutRoot, {
91
- TopArea: PageLayoutTopArea,
92
- MainArea: PageLayoutMainArea,
93
- Column: PageLayoutColumn,
94
- Row: PageLayoutRow
95
- });
96
-
97
- function NoDataPageLayout({ children }) {
98
- return /* @__PURE__ */ jsx(PageLayout, { width: "wide", height: "full", className: "grid-rows-[1fr]", children: /* @__PURE__ */ jsx(PageLayout.MainArea, { isCentered: true, children }) });
99
- }
100
-
101
- export { NoDataPageLayout, PageLayout, usePageHeading };
1
+ export { N as NoDataPageLayout, P as PageLayout } from '../no-data-page-layout-CkhD1Xwb.js';
2
+ export { P as PageHeadingContext, u as usePageHeading } from '../page-heading-context-D3yjYoJE.js';
102
3
  //# sourceMappingURL=PageLayout.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout.es.js","sources":["../../src/ds/components/PageLayout/page-layout-column.tsx","../../src/ds/components/PageLayout/page-layout-main-area.tsx","../../src/ds/components/PageLayout/page-layout-root.tsx","../../src/ds/components/PageLayout/page-layout-row.tsx","../../src/ds/components/PageLayout/page-layout-top-area.tsx","../../src/ds/components/PageLayout/page-layout.tsx","../../src/ds/components/PageLayout/no-data-page-layout.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type PageLayoutColumnProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function PageLayoutColumn({ children, className }: PageLayoutColumnProps) {\n return <div className={cn('grid content-start', className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type PageLayoutMainAreaProps = {\n children: ReactNode;\n className?: string;\n isCentered?: boolean;\n};\n\nexport function PageLayoutMainArea({ children, className, isCentered = false }: PageLayoutMainAreaProps) {\n return (\n <div\n className={cn(\n 'overflow-auto',\n {\n 'flex items-center justify-center': isCentered,\n },\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { usePageHeading } from './page-heading-context';\nimport { cn } from '@/lib/utils';\n\nexport function PageLayoutRoot({\n children,\n className,\n width = 'default',\n height = 'default',\n}: {\n children: ReactNode;\n className?: string;\n width?: 'default' | 'narrow' | 'wide';\n height?: 'default' | 'full';\n}) {\n const pageHeading = usePageHeading();\n\n return (\n <main\n className={cn(\n 'grid w-full grid-rows-[auto_auto] content-start p-6',\n {\n 'max-w-screen-lg mx-auto pt-8': width === 'narrow',\n 'h-full grid-rows-[auto_1fr] overflow-y-auto': height === 'full',\n },\n className,\n // 'LAYOUT_ROOT border border-dashed border-orange-400',\n )}\n >\n {pageHeading && <h1 className=\"sr-only\">{pageHeading}</h1>}\n {children}\n </main>\n );\n}\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst pageLayoutRowVariants = cva('flex justify-between gap-3', {\n variants: {\n align: {\n start: 'items-start',\n center: 'items-center',\n },\n stack: {\n horizontal: 'flex-row',\n responsive: 'flex-col items-stretch sm:flex-row',\n },\n },\n compoundVariants: [\n {\n stack: 'responsive',\n align: 'start',\n class: 'sm:items-start',\n },\n {\n stack: 'responsive',\n align: 'center',\n class: 'sm:items-center',\n },\n ],\n defaultVariants: {\n align: 'start',\n stack: 'horizontal',\n },\n});\n\nexport type PageLayoutRowProps = {\n children?: React.ReactNode;\n className?: string;\n} & VariantProps<typeof pageLayoutRowVariants>;\n\nexport function PageLayoutRow({ children, className, align, stack }: PageLayoutRowProps) {\n return <div className={cn(pageLayoutRowVariants({ align, stack }), className)}>{children}</div>;\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function PageLayoutTopArea({ children, className }: { children: ReactNode; className?: string }) {\n return <div className={cn('grid gap-4 pb-4', className)}>{children}</div>;\n}\n","import { PageLayoutColumn } from './page-layout-column';\nimport { PageLayoutMainArea } from './page-layout-main-area';\nimport { PageLayoutRoot } from './page-layout-root';\nimport { PageLayoutRow } from './page-layout-row';\nimport { PageLayoutTopArea } from './page-layout-top-area';\n\nexport const PageLayout = Object.assign(PageLayoutRoot, {\n TopArea: PageLayoutTopArea,\n MainArea: PageLayoutMainArea,\n Column: PageLayoutColumn,\n Row: PageLayoutRow,\n});\n","import type { ReactNode } from 'react';\nimport { PageLayout } from './page-layout';\n\nexport function NoDataPageLayout({ children }: { title?: string; icon?: ReactNode; children: ReactNode }) {\n return (\n <PageLayout width=\"wide\" height=\"full\" className=\"grid-rows-[1fr]\">\n <PageLayout.MainArea isCentered>{children}</PageLayout.MainArea>\n </PageLayout>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageLayout.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const section = require('../section-LbaBW2X3.cjs');
5
+ const section = require('../section-CzPerGGn.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { S as Section, a as SectionRoot, b as SubSectionRoot } from '../section-D963QL3h.js';
1
+ export { S as Section, a as SectionRoot, b as SubSectionRoot } from '../section-BXEB4HRl.js';
2
2
  //# sourceMappingURL=Section.es.js.map
@@ -14,7 +14,7 @@ const React = require('react');
14
14
  const Button = require('../Button-D10WB4vc.cjs');
15
15
  const buttonsGroup = require('../buttons-group-Cn36DWYX.cjs');
16
16
  const copyButton = require('../copy-button-BtnbaMvl.cjs');
17
- const section = require('../section-LbaBW2X3.cjs');
17
+ const section = require('../section-CzPerGGn.cjs');
18
18
  const themeProvider = require('../theme-provider-aO5-jZVp.cjs');
19
19
  const drawer = require('../drawer-mE9CCzMI.cjs');
20
20
  const utils_cn = require('../cn-DCPcv4xv.cjs');
@@ -11,7 +11,7 @@ import { useState, useMemo } from 'react';
11
11
  import { B as Button } from '../Button-BsfLQEC6.js';
12
12
  import { B as ButtonsGroup } from '../buttons-group-BjM12HPx.js';
13
13
  import { C as CopyButton } from '../copy-button-BHmcGzIz.js';
14
- import { S as Section } from '../section-D963QL3h.js';
14
+ import { S as Section } from '../section-BXEB4HRl.js';
15
15
  import { u as useTheme } from '../theme-provider-C9ih9jSS.js';
16
16
  import { j as DrawerInteractive, D as Drawer, l as DrawerPortal, a as DrawerBackdrop, q as DrawerViewport, k as DrawerPopup, o as DrawerTitle, e as DrawerDescription, c as DrawerClose } from '../drawer-4U7L_dHA.js';
17
17
  import { c as cn } from '../cn-B4oPhFx9.js';
@@ -2,125 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- require('../Switch.css');const jsxRuntime = require('react/jsx-runtime');
6
- const _switch = require('@base-ui/react/switch');
7
- const React = require('react');
8
- const utils_cn = require('../cn-DCPcv4xv.cjs');
5
+ const _switch = require('../switch-DS4BaB8F.cjs');
9
6
 
10
- function _interopNamespaceDefault(e) {
11
- const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
12
- if (e) {
13
- for (const k in e) {
14
- if (k !== 'default') {
15
- const d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: () => e[k]
19
- });
20
- }
21
- }
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
7
 
27
- const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
8
 
29
- const Switch = React__namespace.forwardRef(
30
- ({ className, asChild, children, icon, checkedIcon, uncheckedIcon, ...props }, ref) => {
31
- const shouldRenderStateIcons = checkedIcon !== void 0 || uncheckedIcon !== void 0;
32
- const shouldRenderIcon = icon !== void 0 || shouldRenderStateIcons;
33
- const singleIcon = shouldRenderStateIcons ? void 0 : icon;
34
- const onIcon = checkedIcon ?? icon;
35
- const offIcon = uncheckedIcon ?? icon;
36
- const renderProps = asChild && React__namespace.isValidElement(children) ? { render: children } : { render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" }), nativeButton: true };
37
- return /* @__PURE__ */ jsxRuntime.jsxs(
38
- _switch.Switch.Root,
39
- {
40
- ref,
41
- "data-slot": "switch",
42
- className: utils_cn.cn(
43
- "peer group/switch inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-0 bg-neutral6/[0.14] p-0.5 outline-hidden",
44
- "duration-normal transition-colors ease-out-custom motion-reduce:transition-none",
45
- "hover:bg-neutral6/[0.18]",
46
- "active:bg-neutral6/[0.22]",
47
- "focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-neutral5/55 focus-visible:outline-solid",
48
- "data-[checked]:bg-neutral6/[0.92]",
49
- "data-[checked]:hover:bg-neutral6",
50
- "data-[checked]:active:bg-neutral5",
51
- "data-[disabled]:cursor-not-allowed data-[disabled]:bg-neutral6/[0.16] data-[disabled]:hover:bg-neutral6/[0.16]",
52
- "data-[disabled]:data-[checked]:bg-neutral6/[0.3] data-[disabled]:data-[checked]:hover:bg-neutral6/[0.3]",
53
- className
54
- ),
55
- ...renderProps,
56
- ...props,
57
- children: [
58
- asChild ? void 0 : children,
59
- /* @__PURE__ */ jsxRuntime.jsx(
60
- _switch.Switch.Thumb,
61
- {
62
- "data-slot": "switch-thumb",
63
- className: utils_cn.cn(
64
- "switch-thumb-motion pointer-events-none relative block h-4 w-5 rounded-full bg-neutral6",
65
- "duration-normal transition-[background-color,translate,width,transform] ease-out-custom motion-reduce:transition-none",
66
- "group-active/switch:w-6 group-data-[disabled]/switch:w-5",
67
- "data-[checked]:translate-x-3 data-[checked]:bg-surface1 data-[unchecked]:translate-x-0",
68
- "group-active/switch:data-[checked]:translate-x-2",
69
- "data-[disabled]:data-[checked]:bg-surface1/80 data-[disabled]:data-[unchecked]:bg-neutral6/[0.42]"
70
- ),
71
- children: shouldRenderIcon ? /* @__PURE__ */ jsxRuntime.jsx(SwitchThumbIcon, { checkedIcon: onIcon, icon: singleIcon, uncheckedIcon: offIcon }) : null
72
- }
73
- )
74
- ]
75
- }
76
- );
77
- }
78
- );
79
- Switch.displayName = "Switch";
80
- function SwitchThumbIcon({
81
- checkedIcon,
82
- icon,
83
- uncheckedIcon
84
- }) {
85
- const iconClassName = utils_cn.cn(
86
- "absolute inset-0 flex items-center justify-center text-surface1",
87
- "duration-normal transition-[color,opacity] ease-out-custom motion-reduce:transition-none",
88
- "[&_svg]:stroke-2.5 [&_svg]:size-2.5"
89
- );
90
- if (icon !== void 0) {
91
- return /* @__PURE__ */ jsxRuntime.jsx(
92
- "span",
93
- {
94
- "aria-hidden": true,
95
- "data-slot": "switch-thumb-icon",
96
- className: utils_cn.cn(iconClassName, "group-data-[checked]/switch:text-neutral6"),
97
- children: icon
98
- }
99
- );
100
- }
101
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
- uncheckedIcon !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
103
- "span",
104
- {
105
- "aria-hidden": true,
106
- "data-slot": "switch-thumb-icon",
107
- "data-switch-icon": "unchecked",
108
- className: utils_cn.cn(iconClassName, "opacity-100 group-data-[checked]/switch:opacity-0"),
109
- children: uncheckedIcon
110
- }
111
- ) : null,
112
- checkedIcon !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
113
- "span",
114
- {
115
- "aria-hidden": true,
116
- "data-slot": "switch-thumb-icon",
117
- "data-switch-icon": "checked",
118
- className: utils_cn.cn(iconClassName, "text-neutral6 opacity-0 group-data-[checked]/switch:opacity-100"),
119
- children: checkedIcon
120
- }
121
- ) : null
122
- ] });
123
- }
124
-
125
- exports.Switch = Switch;
9
+ exports.Switch = _switch.Switch;
126
10
  //# sourceMappingURL=Switch.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.cjs.js","sources":["../../src/ds/components/Switch/switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from '@base-ui/react/switch';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport './switch.css';\n\ntype SwitchProps = Omit<SwitchPrimitive.Root.Props, 'className'> & {\n className?: string;\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n icon?: React.ReactNode;\n checkedIcon?: React.ReactNode;\n uncheckedIcon?: React.ReactNode;\n};\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, asChild, children, icon, checkedIcon, uncheckedIcon, ...props }, ref) => {\n const shouldRenderStateIcons = checkedIcon !== undefined || uncheckedIcon !== undefined;\n const shouldRenderIcon = icon !== undefined || shouldRenderStateIcons;\n\n const singleIcon = shouldRenderStateIcons ? undefined : icon;\n const onIcon = checkedIcon ?? icon;\n const offIcon = uncheckedIcon ?? icon;\n\n // Base UI's Switch.Root defaults to a `<span>` and forwards `id` to its\n // hidden checkbox input. Render a native `<button>` (with `nativeButton`) so\n // the consumer's `id` — and the click target — lands on the visible control,\n // matching the previous Radix behavior.\n const renderProps =\n asChild && React.isValidElement(children)\n ? { render: children as React.ReactElement }\n : { render: <button type=\"button\" />, nativeButton: true };\n\n return (\n <SwitchPrimitive.Root\n ref={ref}\n data-slot=\"switch\"\n className={cn(\n 'peer group/switch inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-0 bg-neutral6/[0.14] p-0.5 outline-hidden',\n 'duration-normal transition-colors ease-out-custom motion-reduce:transition-none',\n 'hover:bg-neutral6/[0.18]',\n 'active:bg-neutral6/[0.22]',\n 'focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-neutral5/55 focus-visible:outline-solid',\n 'data-[checked]:bg-neutral6/[0.92]',\n 'data-[checked]:hover:bg-neutral6',\n 'data-[checked]:active:bg-neutral5',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:bg-neutral6/[0.16] data-[disabled]:hover:bg-neutral6/[0.16]',\n 'data-[disabled]:data-[checked]:bg-neutral6/[0.3] data-[disabled]:data-[checked]:hover:bg-neutral6/[0.3]',\n className,\n )}\n {...renderProps}\n {...props}\n >\n {asChild ? undefined : children}\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'switch-thumb-motion pointer-events-none relative block h-4 w-5 rounded-full bg-neutral6',\n 'duration-normal transition-[background-color,translate,width,transform] ease-out-custom motion-reduce:transition-none',\n 'group-active/switch:w-6 group-data-[disabled]/switch:w-5',\n 'data-[checked]:translate-x-3 data-[checked]:bg-surface1 data-[unchecked]:translate-x-0',\n 'group-active/switch:data-[checked]:translate-x-2',\n 'data-[disabled]:data-[checked]:bg-surface1/80 data-[disabled]:data-[unchecked]:bg-neutral6/[0.42]',\n )}\n >\n {shouldRenderIcon ? <SwitchThumbIcon checkedIcon={onIcon} icon={singleIcon} uncheckedIcon={offIcon} /> : null}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n },\n);\nSwitch.displayName = 'Switch';\n\nfunction SwitchThumbIcon({\n checkedIcon,\n icon,\n uncheckedIcon,\n}: {\n checkedIcon?: React.ReactNode;\n icon?: React.ReactNode;\n uncheckedIcon?: React.ReactNode;\n}) {\n const iconClassName = cn(\n 'absolute inset-0 flex items-center justify-center text-surface1',\n 'duration-normal transition-[color,opacity] ease-out-custom motion-reduce:transition-none',\n '[&_svg]:stroke-2.5 [&_svg]:size-2.5',\n );\n\n if (icon !== undefined) {\n return (\n <span\n aria-hidden\n data-slot=\"switch-thumb-icon\"\n className={cn(iconClassName, 'group-data-[checked]/switch:text-neutral6')}\n >\n {icon}\n </span>\n );\n }\n\n return (\n <>\n {uncheckedIcon !== undefined ? (\n <span\n aria-hidden\n data-slot=\"switch-thumb-icon\"\n data-switch-icon=\"unchecked\"\n className={cn(iconClassName, 'opacity-100 group-data-[checked]/switch:opacity-0')}\n >\n {uncheckedIcon}\n </span>\n ) : null}\n {checkedIcon !== undefined ? (\n <span\n aria-hidden\n data-slot=\"switch-thumb-icon\"\n data-switch-icon=\"checked\"\n className={cn(iconClassName, 'text-neutral6 opacity-0 group-data-[checked]/switch:opacity-100')}\n >\n {checkedIcon}\n </span>\n ) : null}\n </>\n );\n}\n\nexport { Switch };\nexport type { SwitchProps };\n"],"names":["React","jsx","jsxs","SwitchPrimitive","cn","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"Switch.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}