@plastic-js/tsumiki 0.1.22 → 0.1.24

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 (199) hide show
  1. package/README.md +838 -65
  2. package/dist/components/Accordion.js +93 -4
  3. package/dist/components/Avatar.js +96 -4
  4. package/dist/components/BottomSheet.js +131 -0
  5. package/dist/components/Button.js +194 -0
  6. package/dist/components/CardNumberInput.js +28 -44
  7. package/dist/components/Carousel.js +71 -5
  8. package/dist/components/Checkbox.js +178 -4
  9. package/dist/components/Clipboard.js +135 -5
  10. package/dist/components/CloseButton.js +97 -0
  11. package/dist/components/Collapsible.js +22 -4
  12. package/dist/components/ColorPicker.js +327 -4
  13. package/dist/components/Combobox.js +86 -13
  14. package/dist/components/ConfirmDialog.js +174 -19
  15. package/dist/components/DateInput.js +437 -5
  16. package/dist/components/{DatePickerMobile/wheel.js → DateWheel.js} +1 -3
  17. package/dist/components/Dialog.js +214 -110
  18. package/dist/components/Drawer.js +169 -4
  19. package/dist/components/Field.js +121 -5
  20. package/dist/components/Fieldset.js +64 -5
  21. package/dist/components/FileUpload.js +181 -4
  22. package/dist/components/FocusTrap.js +0 -2
  23. package/dist/components/Icon.js +32 -17
  24. package/dist/components/Input.js +211 -0
  25. package/dist/components/Listbox.js +47 -4
  26. package/dist/components/Menu.js +99 -4
  27. package/dist/components/MoneyInput.js +33 -85
  28. package/dist/components/NumberInput.js +117 -4
  29. package/dist/components/Pagination.js +91 -5
  30. package/dist/components/Popover.js +123 -4
  31. package/dist/components/Portal.js +0 -2
  32. package/dist/components/Presence.js +0 -2
  33. package/dist/components/Progress.js +107 -4
  34. package/dist/components/RadioGroup.js +104 -4
  35. package/dist/components/RatingGroup.js +75 -4
  36. package/dist/components/SearchInput.js +60 -55
  37. package/dist/components/Select.js +428 -5
  38. package/dist/components/SelectPc.js +239 -0
  39. package/dist/components/SignaturePad.js +77 -4
  40. package/dist/components/Skeleton.js +2 -4
  41. package/dist/components/Slider.js +112 -4
  42. package/dist/components/Spinner.js +41 -0
  43. package/dist/components/Splitter.js +51 -4
  44. package/dist/components/Steps.js +259 -4
  45. package/dist/components/SwipeReveal.js +2 -4
  46. package/dist/components/Switch.js +147 -4
  47. package/dist/components/Tabs.js +80 -4
  48. package/dist/components/TagsInput.js +128 -4
  49. package/dist/components/Toast.js +174 -4
  50. package/dist/components/Toggle.js +39 -4
  51. package/dist/components/ToggleGroup.js +103 -4
  52. package/dist/components/Tour.js +63 -4
  53. package/dist/components/TreeView.js +113 -4
  54. package/dist/index.js +44 -45
  55. package/dist/tsumiki.css +1 -0
  56. package/docs/api.md +670 -0
  57. package/docs/component-api-pattern.md +362 -0
  58. package/package.json +16 -6
  59. package/src/styles/color.css +112 -0
  60. package/src/styles/index.css +1 -0
  61. package/src/styles/radius.css +27 -0
  62. package/src/styles/reset.css +111 -0
  63. package/src/styles/shadow.css +5 -0
  64. package/src/styles/sizing.css +59 -0
  65. package/src/styles/spacing.css +9 -0
  66. package/src/styles/theme.css +38 -0
  67. package/src/styles/tokens.css +22 -0
  68. package/src/styles/transition.css +5 -0
  69. package/src/styles/typography.css +8 -0
  70. package/dist/components/Accordion.js.map +0 -1
  71. package/dist/components/Avatar.js.map +0 -1
  72. package/dist/components/CardNumberInput.js.map +0 -1
  73. package/dist/components/Carousel.js.map +0 -1
  74. package/dist/components/Checkbox.js.map +0 -1
  75. package/dist/components/Clipboard.js.map +0 -1
  76. package/dist/components/Collapsible.js.map +0 -1
  77. package/dist/components/ColorPicker.js.map +0 -1
  78. package/dist/components/Combobox.js.map +0 -1
  79. package/dist/components/ConfirmDialog.js.map +0 -1
  80. package/dist/components/DateInput.js.map +0 -1
  81. package/dist/components/DatePicker.js +0 -7
  82. package/dist/components/DatePicker.js.map +0 -1
  83. package/dist/components/DatePickerMobile/index.js +0 -479
  84. package/dist/components/DatePickerMobile/index.js.map +0 -1
  85. package/dist/components/DatePickerMobile/wheel.js.map +0 -1
  86. package/dist/components/Dialog.js.map +0 -1
  87. package/dist/components/Drawer.js.map +0 -1
  88. package/dist/components/Field.js.map +0 -1
  89. package/dist/components/Fieldset.js.map +0 -1
  90. package/dist/components/FileUpload.js.map +0 -1
  91. package/dist/components/FilterableSelect.js +0 -210
  92. package/dist/components/FilterableSelect.js.map +0 -1
  93. package/dist/components/FilterableSelectMobile.js +0 -167
  94. package/dist/components/FilterableSelectMobile.js.map +0 -1
  95. package/dist/components/FocusTrap.js.map +0 -1
  96. package/dist/components/HoverCard.js +0 -7
  97. package/dist/components/HoverCard.js.map +0 -1
  98. package/dist/components/Icon.js.map +0 -1
  99. package/dist/components/Listbox.js.map +0 -1
  100. package/dist/components/Menu.js.map +0 -1
  101. package/dist/components/MoneyInput.js.map +0 -1
  102. package/dist/components/NumberInput.js.map +0 -1
  103. package/dist/components/Pagination.js.map +0 -1
  104. package/dist/components/Popover.js.map +0 -1
  105. package/dist/components/Portal.js.map +0 -1
  106. package/dist/components/Presence.js.map +0 -1
  107. package/dist/components/Progress.js.map +0 -1
  108. package/dist/components/RadioGroup.js.map +0 -1
  109. package/dist/components/RatingGroup.js.map +0 -1
  110. package/dist/components/SearchInput.js.map +0 -1
  111. package/dist/components/Select.js.map +0 -1
  112. package/dist/components/SelectMobile/anatomy.js +0 -10
  113. package/dist/components/SelectMobile/anatomy.js.map +0 -1
  114. package/dist/components/SelectMobile/index.js +0 -310
  115. package/dist/components/SelectMobile/index.js.map +0 -1
  116. package/dist/components/SignaturePad.js.map +0 -1
  117. package/dist/components/Skeleton.js.map +0 -1
  118. package/dist/components/Slider.js.map +0 -1
  119. package/dist/components/Splitter.js.map +0 -1
  120. package/dist/components/Steps.js.map +0 -1
  121. package/dist/components/SwipeReveal.js.map +0 -1
  122. package/dist/components/Switch.js.map +0 -1
  123. package/dist/components/Tabs.js.map +0 -1
  124. package/dist/components/TagsInput.js.map +0 -1
  125. package/dist/components/Toast.js.map +0 -1
  126. package/dist/components/Toggle.js.map +0 -1
  127. package/dist/components/ToggleGroup.js.map +0 -1
  128. package/dist/components/Tooltip.js +0 -7
  129. package/dist/components/Tooltip.js.map +0 -1
  130. package/dist/components/Tour.js.map +0 -1
  131. package/dist/components/TreeView.js.map +0 -1
  132. package/dist/node_modules/framesync/dist/es/create-render-step.js +0 -54
  133. package/dist/node_modules/framesync/dist/es/create-render-step.js.map +0 -1
  134. package/dist/node_modules/framesync/dist/es/index.js +0 -61
  135. package/dist/node_modules/framesync/dist/es/index.js.map +0 -1
  136. package/dist/node_modules/framesync/dist/es/on-next-frame.js +0 -8
  137. package/dist/node_modules/framesync/dist/es/on-next-frame.js.map +0 -1
  138. package/dist/node_modules/hey-listen/dist/hey-listen.es.js +0 -15
  139. package/dist/node_modules/hey-listen/dist/hey-listen.es.js.map +0 -1
  140. package/dist/node_modules/popmotion/dist/es/animations/generators/decay.js +0 -24
  141. package/dist/node_modules/popmotion/dist/es/animations/generators/decay.js.map +0 -1
  142. package/dist/node_modules/popmotion/dist/es/animations/generators/keyframes.js +0 -40
  143. package/dist/node_modules/popmotion/dist/es/animations/generators/keyframes.js.map +0 -1
  144. package/dist/node_modules/popmotion/dist/es/animations/generators/spring.js +0 -96
  145. package/dist/node_modules/popmotion/dist/es/animations/generators/spring.js.map +0 -1
  146. package/dist/node_modules/popmotion/dist/es/animations/index.js +0 -94
  147. package/dist/node_modules/popmotion/dist/es/animations/index.js.map +0 -1
  148. package/dist/node_modules/popmotion/dist/es/animations/inertia.js +0 -74
  149. package/dist/node_modules/popmotion/dist/es/animations/inertia.js.map +0 -1
  150. package/dist/node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js +0 -21
  151. package/dist/node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.js.map +0 -1
  152. package/dist/node_modules/popmotion/dist/es/animations/utils/elapsed.js +0 -14
  153. package/dist/node_modules/popmotion/dist/es/animations/utils/elapsed.js.map +0 -1
  154. package/dist/node_modules/popmotion/dist/es/animations/utils/find-spring.js +0 -68
  155. package/dist/node_modules/popmotion/dist/es/animations/utils/find-spring.js.map +0 -1
  156. package/dist/node_modules/popmotion/dist/es/easing/index.js +0 -28
  157. package/dist/node_modules/popmotion/dist/es/easing/index.js.map +0 -1
  158. package/dist/node_modules/popmotion/dist/es/easing/utils.js +0 -13
  159. package/dist/node_modules/popmotion/dist/es/easing/utils.js.map +0 -1
  160. package/dist/node_modules/popmotion/dist/es/utils/clamp.js +0 -6
  161. package/dist/node_modules/popmotion/dist/es/utils/clamp.js.map +0 -1
  162. package/dist/node_modules/popmotion/dist/es/utils/hsla-to-rgba.js +0 -35
  163. package/dist/node_modules/popmotion/dist/es/utils/hsla-to-rgba.js.map +0 -1
  164. package/dist/node_modules/popmotion/dist/es/utils/inc.js +0 -6
  165. package/dist/node_modules/popmotion/dist/es/utils/inc.js.map +0 -1
  166. package/dist/node_modules/popmotion/dist/es/utils/interpolate.js +0 -69
  167. package/dist/node_modules/popmotion/dist/es/utils/interpolate.js.map +0 -1
  168. package/dist/node_modules/popmotion/dist/es/utils/mix-color.js +0 -45
  169. package/dist/node_modules/popmotion/dist/es/utils/mix-color.js.map +0 -1
  170. package/dist/node_modules/popmotion/dist/es/utils/mix-complex.js +0 -61
  171. package/dist/node_modules/popmotion/dist/es/utils/mix-complex.js.map +0 -1
  172. package/dist/node_modules/popmotion/dist/es/utils/mix.js +0 -6
  173. package/dist/node_modules/popmotion/dist/es/utils/mix.js.map +0 -1
  174. package/dist/node_modules/popmotion/dist/es/utils/pipe.js +0 -7
  175. package/dist/node_modules/popmotion/dist/es/utils/pipe.js.map +0 -1
  176. package/dist/node_modules/popmotion/dist/es/utils/progress.js +0 -9
  177. package/dist/node_modules/popmotion/dist/es/utils/progress.js.map +0 -1
  178. package/dist/node_modules/popmotion/dist/es/utils/velocity-per-second.js +0 -8
  179. package/dist/node_modules/popmotion/dist/es/utils/velocity-per-second.js.map +0 -1
  180. package/dist/node_modules/popmotion/node_modules/tslib/tslib.es6.js +0 -13
  181. package/dist/node_modules/popmotion/node_modules/tslib/tslib.es6.js.map +0 -1
  182. package/dist/node_modules/style-value-types/dist/es/color/hex.js +0 -39
  183. package/dist/node_modules/style-value-types/dist/es/color/hex.js.map +0 -1
  184. package/dist/node_modules/style-value-types/dist/es/color/hsla.js +0 -16
  185. package/dist/node_modules/style-value-types/dist/es/color/hsla.js.map +0 -1
  186. package/dist/node_modules/style-value-types/dist/es/color/index.js +0 -20
  187. package/dist/node_modules/style-value-types/dist/es/color/index.js.map +0 -1
  188. package/dist/node_modules/style-value-types/dist/es/color/rgba.js +0 -15
  189. package/dist/node_modules/style-value-types/dist/es/color/rgba.js.map +0 -1
  190. package/dist/node_modules/style-value-types/dist/es/color/utils.js +0 -19
  191. package/dist/node_modules/style-value-types/dist/es/color/utils.js.map +0 -1
  192. package/dist/node_modules/style-value-types/dist/es/complex/index.js +0 -58
  193. package/dist/node_modules/style-value-types/dist/es/complex/index.js.map +0 -1
  194. package/dist/node_modules/style-value-types/dist/es/numbers/index.js +0 -13
  195. package/dist/node_modules/style-value-types/dist/es/numbers/index.js.map +0 -1
  196. package/dist/node_modules/style-value-types/dist/es/numbers/units.js +0 -16
  197. package/dist/node_modules/style-value-types/dist/es/numbers/units.js.map +0 -1
  198. package/dist/node_modules/style-value-types/dist/es/utils.js +0 -13
  199. package/dist/node_modules/style-value-types/dist/es/utils.js.map +0 -1
@@ -1,7 +1,150 @@
1
+ import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
2
+ import { css } from "@emotion/css";
1
3
  import { Switch } from "@plastic-js/ark";
4
+ import { mergeProps as mergeProps$2, splitProps } from "@plastic-js/plastic";
2
5
  //#region src/components/Switch.jsx
3
- var Switch_default = Switch;
6
+ var sizeClasses = {
7
+ xs: css({
8
+ "--_sw-track-height": "var(--tsu-comp-secondary-height-xs)",
9
+ "--_sw-track-width": "calc(2 * var(--tsu-comp-secondary-height-xs))",
10
+ "--_sw-track-radius": "calc(var(--tsu-comp-secondary-height-xs) / 2)",
11
+ "--_sw-thumb-size": "calc(var(--tsu-comp-secondary-height-xs) - 4px)",
12
+ "--_sw-thumb-offset": "2px",
13
+ "--_sw-thumb-travel": "var(--tsu-comp-secondary-height-xs)",
14
+ "--_sw-gap": "var(--tsu-spacing-sm)",
15
+ "--_sw-min-height": "var(--tsu-comp-height-xs)",
16
+ "--_sw-font-size": "var(--tsu-comp-font-size-xs)",
17
+ "--_sw-line-height": "var(--tsu-comp-line-height-xs)"
18
+ }),
19
+ sm: css({
20
+ "--_sw-track-height": "var(--tsu-comp-secondary-height-sm)",
21
+ "--_sw-track-width": "calc(2 * var(--tsu-comp-secondary-height-sm))",
22
+ "--_sw-track-radius": "calc(var(--tsu-comp-secondary-height-sm) / 2)",
23
+ "--_sw-thumb-size": "calc(var(--tsu-comp-secondary-height-sm) - 4px)",
24
+ "--_sw-thumb-offset": "2px",
25
+ "--_sw-thumb-travel": "var(--tsu-comp-secondary-height-sm)",
26
+ "--_sw-gap": "9px",
27
+ "--_sw-min-height": "var(--tsu-comp-height-sm)",
28
+ "--_sw-font-size": "var(--tsu-comp-font-size-sm)",
29
+ "--_sw-line-height": "var(--tsu-comp-line-height-sm)"
30
+ }),
31
+ md: css({
32
+ "--_sw-track-height": "var(--tsu-comp-secondary-height-md)",
33
+ "--_sw-track-width": "calc(2 * var(--tsu-comp-secondary-height-md))",
34
+ "--_sw-track-radius": "calc(var(--tsu-comp-secondary-height-md) / 2)",
35
+ "--_sw-thumb-size": "calc(var(--tsu-comp-secondary-height-md) - 4px)",
36
+ "--_sw-thumb-offset": "2px",
37
+ "--_sw-thumb-travel": "var(--tsu-comp-secondary-height-md)",
38
+ "--_sw-gap": "10px",
39
+ "--_sw-min-height": "var(--tsu-comp-height-md)",
40
+ "--_sw-font-size": "var(--tsu-comp-font-size-md)",
41
+ "--_sw-line-height": "var(--tsu-comp-line-height-md)"
42
+ }),
43
+ lg: css({
44
+ "--_sw-track-height": "var(--tsu-comp-secondary-height-lg)",
45
+ "--_sw-track-width": "calc(2 * var(--tsu-comp-secondary-height-lg))",
46
+ "--_sw-track-radius": "calc(var(--tsu-comp-secondary-height-lg) / 2)",
47
+ "--_sw-thumb-size": "calc(var(--tsu-comp-secondary-height-lg) - 4px)",
48
+ "--_sw-thumb-offset": "2px",
49
+ "--_sw-thumb-travel": "var(--tsu-comp-secondary-height-lg)",
50
+ "--_sw-gap": "11px",
51
+ "--_sw-min-height": "var(--tsu-comp-height-lg)",
52
+ "--_sw-font-size": "var(--tsu-comp-font-size-lg)",
53
+ "--_sw-line-height": "var(--tsu-comp-line-height-lg)"
54
+ }),
55
+ xl: css({
56
+ "--_sw-track-height": "var(--tsu-comp-secondary-height-xl)",
57
+ "--_sw-track-width": "calc(2 * var(--tsu-comp-secondary-height-xl))",
58
+ "--_sw-track-radius": "calc(var(--tsu-comp-secondary-height-xl) / 2)",
59
+ "--_sw-thumb-size": "calc(var(--tsu-comp-secondary-height-xl) - 4px)",
60
+ "--_sw-thumb-offset": "2px",
61
+ "--_sw-thumb-travel": "var(--tsu-comp-secondary-height-xl)",
62
+ "--_sw-gap": "var(--tsu-spacing-md)",
63
+ "--_sw-min-height": "var(--tsu-comp-height-xl)",
64
+ "--_sw-font-size": "var(--tsu-comp-font-size-xl)",
65
+ "--_sw-line-height": "var(--tsu-comp-line-height-xl)"
66
+ })
67
+ };
68
+ var rootClass = css({
69
+ display: "inline-flex",
70
+ alignItems: "center",
71
+ gap: "var(--_sw-gap, 10px)",
72
+ minHeight: "var(--_sw-min-height, var(--tsu-comp-height-md))",
73
+ cursor: "pointer",
74
+ fontFamily: "inherit",
75
+ userSelect: "none",
76
+ touchAction: "manipulation",
77
+ WebkitTapHighlightColor: "transparent",
78
+ "&[data-disabled]": { cursor: "not-allowed" }
79
+ });
80
+ var controlClass = css({
81
+ position: "relative",
82
+ width: "var(--_sw-track-width, calc(2 * var(--tsu-comp-secondary-height-md)))",
83
+ height: "var(--_sw-track-height, var(--tsu-comp-secondary-height-md))",
84
+ flexShrink: 0,
85
+ borderRadius: "var(--_sw-track-radius, calc(var(--tsu-comp-secondary-height-md) / 2))",
86
+ backgroundColor: "var(--tsu-neutral-7)",
87
+ transition: "background-color var(--tsu-transition-fast)",
88
+ "&[data-state=\"checked\"]": { backgroundColor: "var(--tsu-accent-9)" },
89
+ "&[data-disabled]": { backgroundColor: "var(--tsu-neutral-5)" },
90
+ "&[data-disabled][data-state=\"checked\"]": { backgroundColor: "var(--tsu-disabled-border)" }
91
+ });
92
+ var thumbClass = css({
93
+ position: "absolute",
94
+ top: "var(--_sw-thumb-offset, 2px)",
95
+ left: "var(--_sw-thumb-offset, 2px)",
96
+ width: "var(--_sw-thumb-size, calc(var(--tsu-comp-secondary-height-md) - 4px))",
97
+ height: "var(--_sw-thumb-size, calc(var(--tsu-comp-secondary-height-md) - 4px))",
98
+ borderRadius: "50%",
99
+ backgroundColor: "var(--tsu-bg)",
100
+ boxShadow: "0 1px 3px rgba(0,0,0,0.15)",
101
+ transform: "translateX(0)",
102
+ transition: "transform var(--tsu-transition-fast)",
103
+ "&[data-state=\"checked\"]": { transform: "translateX(var(--_sw-thumb-travel, var(--tsu-comp-secondary-height-md)))" },
104
+ "&[data-disabled]": {
105
+ backgroundColor: "var(--tsu-neutral-8)",
106
+ boxShadow: "none"
107
+ },
108
+ "&[data-disabled][data-state=\"checked\"]": { backgroundColor: "var(--tsu-bg)" }
109
+ });
110
+ var labelClass = css({
111
+ fontSize: "var(--_sw-font-size, var(--tsu-comp-font-size-md))",
112
+ lineHeight: "var(--_sw-line-height, var(--tsu-comp-line-height-md))",
113
+ color: "var(--tsu-fg)",
114
+ "&[data-disabled]": { color: "var(--tsu-disabled-fg)" }
115
+ });
116
+ var Switch$1 = (props = {}) => {
117
+ const [local, rest] = splitProps(mergeProps$2({ size: "md" }, props), [
118
+ "size",
119
+ "className",
120
+ "children"
121
+ ]);
122
+ const classNames = [
123
+ rootClass,
124
+ sizeClasses[local.size],
125
+ local.className
126
+ ].filter(Boolean).join(" ");
127
+ return jsx(Switch.Root, mergeProps(rest, {
128
+ className: classNames,
129
+ children: [
130
+ jsx(Switch.Control, mergeProps({
131
+ className: controlClass,
132
+ children: jsx(Switch.Thumb, mergeProps({ className: thumbClass }))
133
+ })),
134
+ () => local.children && jsx(Switch.Label, mergeProps({
135
+ className: labelClass,
136
+ children: () => local.children
137
+ })),
138
+ jsx(Switch.HiddenInput, {})
139
+ ]
140
+ }));
141
+ };
142
+ Switch$1.origin = {
143
+ Root: Switch.Root,
144
+ Control: Switch.Control,
145
+ Thumb: Switch.Thumb,
146
+ Label: Switch.Label,
147
+ HiddenInput: Switch.HiddenInput
148
+ };
4
149
  //#endregion
5
- export { Switch_default as default };
6
-
7
- //# sourceMappingURL=Switch.js.map
150
+ export { Switch$1 as default };
@@ -1,7 +1,83 @@
1
+ import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
2
+ import { css } from "@emotion/css";
1
3
  import { Tabs } from "@plastic-js/ark";
4
+ import { splitProps } from "@plastic-js/plastic";
2
5
  //#region src/components/Tabs.jsx
3
- var Tabs_default = Tabs;
6
+ var listClass = css({
7
+ position: "relative",
8
+ display: "flex",
9
+ borderBottom: "1px solid var(--tsu-neutral-7)"
10
+ });
11
+ var triggerClass = css({
12
+ position: "relative",
13
+ zIndex: 1,
14
+ display: "flex",
15
+ alignItems: "center",
16
+ justifyContent: "center",
17
+ height: "40px",
18
+ padding: "0 var(--tsu-container-padding-md)",
19
+ border: "none",
20
+ background: "transparent",
21
+ color: "var(--tsu-neutral-11)",
22
+ fontSize: "var(--tsu-comp-font-size-md)",
23
+ fontFamily: "inherit",
24
+ cursor: "pointer",
25
+ whiteSpace: "nowrap",
26
+ "&[data-selected]": { color: "var(--tsu-accent-9)" },
27
+ "&[data-disabled]": {
28
+ opacity: .4,
29
+ cursor: "not-allowed"
30
+ }
31
+ });
32
+ var indicatorClass = css({
33
+ position: "absolute",
34
+ bottom: "-1px",
35
+ height: "2px",
36
+ backgroundColor: "var(--tsu-accent-9)",
37
+ borderRadius: "1px",
38
+ transition: "left var(--tsu-transition-fast), width var(--tsu-transition-fast)",
39
+ width: "var(--width)",
40
+ zIndex: 0
41
+ });
42
+ var contentClass = css({ paddingTop: "var(--tsu-container-padding-md)" });
43
+ var Tabs$1 = (props = {}) => {
44
+ const [local, rest] = splitProps(props, [
45
+ "triggers",
46
+ "className",
47
+ "children"
48
+ ]);
49
+ const triggers = local.triggers.map((t) => {
50
+ if (typeof t === "string") return {
51
+ key: t,
52
+ value: t,
53
+ disabled: false
54
+ };
55
+ return {
56
+ key: t.key,
57
+ value: t.value,
58
+ disabled: t.disabled ?? false
59
+ };
60
+ });
61
+ const children = [].concat(local.children).filter(Boolean);
62
+ return jsx(Tabs.Root, mergeProps(rest, { children: [jsx(Tabs.List, mergeProps({
63
+ className: listClass,
64
+ children: [() => triggers.map((t) => jsx(Tabs.Trigger, mergeProps({
65
+ get value() {
66
+ return t.key;
67
+ },
68
+ get disabled() {
69
+ return t.disabled;
70
+ },
71
+ className: triggerClass,
72
+ children: () => t.value
73
+ }))), jsx(Tabs.Indicator, mergeProps({ className: indicatorClass }))]
74
+ })), () => triggers.map((t, i) => jsx(Tabs.Content, mergeProps({
75
+ get value() {
76
+ return t.key;
77
+ },
78
+ className: contentClass,
79
+ children: () => children[i]
80
+ })))] }));
81
+ };
4
82
  //#endregion
5
- export { Tabs_default as default };
6
-
7
- //# sourceMappingURL=Tabs.js.map
83
+ export { Tabs$1 as default };
@@ -1,7 +1,131 @@
1
+ import { jsx, mergeProps, template } from "@plastic-js/plastic/jsx-runtime";
2
+ import { css } from "@emotion/css";
1
3
  import { TagsInput } from "@plastic-js/ark";
4
+ import { mergeProps as mergeProps$2, splitProps } from "@plastic-js/plastic";
2
5
  //#region src/components/TagsInput.jsx
3
- var TagsInput_default = TagsInput;
6
+ var _tmpl = template("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" width=\"10\" height=\"10\" aria-hidden=\"true\"><path d=\"M18 6 6 18M6 6l12 12\"></path></svg>");
7
+ var rootClass = css({
8
+ display: "flex",
9
+ flexWrap: "wrap",
10
+ alignItems: "center",
11
+ gap: "var(--tsu-spacing-xs)",
12
+ padding: "var(--tsu-spacing-xs) var(--tsu-spacing-sm)",
13
+ border: "1px solid var(--tsu-accent-8)",
14
+ borderRadius: "var(--tsu-radius-l1-md)",
15
+ backgroundColor: "var(--tsu-bg)",
16
+ minHeight: "var(--tsu-comp-height-lg)",
17
+ "&:focus-within": { borderColor: "var(--tsu-focus-border)" }
18
+ });
19
+ var tagClass = css({
20
+ display: "inline-flex",
21
+ alignItems: "center",
22
+ gap: "4px",
23
+ padding: "2px 8px",
24
+ borderRadius: "var(--tsu-radius-l1-xs)",
25
+ backgroundColor: "var(--tsu-accent-3)",
26
+ color: "var(--tsu-accent-9)",
27
+ fontSize: "var(--tsu-font-size-sm)",
28
+ fontWeight: 500
29
+ });
30
+ var tagDeleteClass = css({
31
+ display: "flex",
32
+ alignItems: "center",
33
+ justifyContent: "center",
34
+ width: "16px",
35
+ height: "16px",
36
+ borderRadius: "50%",
37
+ border: "none",
38
+ background: "transparent",
39
+ color: "var(--tsu-accent-9)",
40
+ cursor: "pointer",
41
+ padding: 0,
42
+ fontSize: "12px",
43
+ lineHeight: 1
44
+ });
45
+ var controlClass = css({
46
+ display: "flex",
47
+ flexWrap: "wrap",
48
+ alignItems: "center",
49
+ gap: "var(--tsu-spacing-xs)"
50
+ });
51
+ var previewClass = css({
52
+ display: "flex",
53
+ alignItems: "center",
54
+ gap: "4px"
55
+ });
56
+ var inputClass = css({
57
+ flex: 1,
58
+ minWidth: "80px",
59
+ border: "none",
60
+ outline: "none",
61
+ background: "transparent",
62
+ color: "var(--tsu-fg)",
63
+ fontSize: "var(--tsu-comp-font-size-md)",
64
+ fontFamily: "inherit",
65
+ padding: 0,
66
+ "&::placeholder": { color: "var(--tsu-neutral-11)" }
67
+ });
68
+ var labelClass = css({
69
+ fontSize: "var(--tsu-comp-font-size-md)",
70
+ fontWeight: 500,
71
+ color: "var(--tsu-fg)",
72
+ marginBottom: "var(--tsu-spacing-xs)"
73
+ });
74
+ var TagItem = (props = {}) => {
75
+ const [local, rest] = splitProps(props, ["className", "children"]);
76
+ return jsx(TagsInput.Item, mergeProps(rest, {
77
+ get className() {
78
+ return [tagClass, local.className].filter(Boolean).join(" ");
79
+ },
80
+ children: [jsx(TagsInput.ItemPreview, mergeProps({
81
+ className: previewClass,
82
+ children: [jsx(TagsInput.ItemText, mergeProps({ children: () => rest.value })), jsx(TagsInput.ItemDeleteTrigger, mergeProps({
83
+ className: tagDeleteClass,
84
+ children: _tmpl.cloneNode(true)
85
+ }))]
86
+ })), jsx(TagsInput.ItemInput, {})]
87
+ }));
88
+ };
89
+ var TagsInput$1 = (props = {}) => {
90
+ const [local, rest] = splitProps(mergeProps$2({}, props), [
91
+ "className",
92
+ "label",
93
+ "placeholder"
94
+ ]);
95
+ return jsx(TagsInput.Root, mergeProps(rest, {
96
+ get className() {
97
+ return [rootClass, local.className].filter(Boolean).join(" ");
98
+ },
99
+ children: [() => local.label && jsx(TagsInput.Label, mergeProps({
100
+ className: labelClass,
101
+ children: () => local.label
102
+ })), jsx(TagsInput.Control, mergeProps({
103
+ className: controlClass,
104
+ children: [() => (rest.value?.() || []).map((tag, i) => jsx(TagItem, mergeProps({
105
+ key: tag,
106
+ index: i,
107
+ value: tag
108
+ }))), jsx(TagsInput.Input, mergeProps({
109
+ className: inputClass,
110
+ get placeholder() {
111
+ return local.placeholder;
112
+ }
113
+ }))]
114
+ }))]
115
+ }));
116
+ };
117
+ TagsInput$1.origin = {
118
+ Root: TagsInput.Root,
119
+ Label: TagsInput.Label,
120
+ Control: TagsInput.Control,
121
+ Input: TagsInput.Input,
122
+ Item: TagsInput.Item,
123
+ ItemPreview: TagsInput.ItemPreview,
124
+ ItemText: TagsInput.ItemText,
125
+ ItemDeleteTrigger: TagsInput.ItemDeleteTrigger,
126
+ ItemInput: TagsInput.ItemInput,
127
+ ClearTrigger: TagsInput.ClearTrigger,
128
+ HiddenInput: TagsInput.HiddenInput
129
+ };
4
130
  //#endregion
5
- export { TagsInput_default as default };
6
-
7
- //# sourceMappingURL=TagsInput.js.map
131
+ export { TagsInput$1 as default };
@@ -1,7 +1,177 @@
1
+ import { insert, jsx, mergeProps, setProp, template } from "@plastic-js/plastic/jsx-runtime";
2
+ import { css } from "@emotion/css";
1
3
  import { Toast, createToaster } from "@plastic-js/ark";
4
+ import { splitProps } from "@plastic-js/plastic";
2
5
  //#region src/components/Toast.jsx
3
- var Toast_default = Object.assign(Toast, { createToaster });
6
+ var _tmpl2 = template("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18M6 6l12 12\"></path></svg>");
7
+ var _tmpl = template("<span></span>");
8
+ var createToaster$1 = (options = {}) => {
9
+ return createToaster({
10
+ overlap: false,
11
+ ...options
12
+ });
13
+ };
14
+ var toastClass = css({
15
+ display: "flex",
16
+ alignItems: "flex-start",
17
+ gap: "12px",
18
+ width: "min(92vw, 340px)",
19
+ padding: "16px",
20
+ background: "var(--tsu-bg)",
21
+ border: "1px solid var(--tsu-neutral-6)",
22
+ borderRadius: "var(--tsu-radius-l2-lg)",
23
+ borderLeft: "3px solid var(--tsu-neutral-7)",
24
+ boxShadow: "0 8px 24px rgba(0,0,0,0.12)",
25
+ pointerEvents: "auto",
26
+ translate: "var(--x) var(--y)",
27
+ scale: "var(--scale)",
28
+ zIndex: "var(--z-index)",
29
+ height: "var(--height)",
30
+ opacity: "var(--opacity)",
31
+ willChange: "translate, opacity, scale",
32
+ transition: `
33
+ translate 400ms cubic-bezier(0.21, 1.02, 0.73, 1),
34
+ scale 400ms cubic-bezier(0.21, 1.02, 0.73, 1),
35
+ opacity 400ms cubic-bezier(0.21, 1.02, 0.73, 1),
36
+ height 400ms cubic-bezier(0.21, 1.02, 0.73, 1),
37
+ box-shadow 200ms cubic-bezier(0.21, 1.02, 0.73, 1)
38
+ `,
39
+ "&[data-state=\"closed\"]": { transition: `
40
+ translate 400ms cubic-bezier(0.06, 0.71, 0.55, 1),
41
+ scale 400ms cubic-bezier(0.06, 0.71, 0.55, 1),
42
+ opacity 200ms cubic-bezier(0.06, 0.71, 0.55, 1)
43
+ ` },
44
+ "&[data-type=\"success\"]": { borderLeftColor: "var(--tsu-success-9)" },
45
+ "&[data-type=\"error\"]": { borderLeftColor: "var(--tsu-danger-9)" },
46
+ "&[data-type=\"info\"]": { borderLeftColor: "var(--tsu-info-9)" },
47
+ "&[data-type=\"warning\"]": { borderLeftColor: "var(--tsu-warning-9)" }
48
+ });
49
+ var titleClass = css({
50
+ margin: 0,
51
+ fontSize: "15px",
52
+ fontWeight: 700,
53
+ lineHeight: 1.3,
54
+ letterSpacing: "-0.01em",
55
+ color: "var(--tsu-fg)",
56
+ wordBreak: "break-word"
57
+ });
58
+ var descriptionClass = css({
59
+ margin: "6px 0 0",
60
+ fontSize: "14px",
61
+ lineHeight: 1.5,
62
+ color: "var(--tsu-neutral-11)",
63
+ wordBreak: "break-word"
64
+ });
65
+ var closeClass = css({
66
+ flexShrink: 0,
67
+ alignSelf: "flex-start",
68
+ display: "flex",
69
+ alignItems: "center",
70
+ justifyContent: "center",
71
+ width: "28px",
72
+ height: "28px",
73
+ margin: "-4px -8px 0 auto",
74
+ padding: 0,
75
+ border: "none",
76
+ borderRadius: "999px",
77
+ background: "transparent",
78
+ color: "var(--tsu-neutral-11)",
79
+ cursor: "pointer",
80
+ "& svg": {
81
+ width: "14px",
82
+ height: "14px",
83
+ display: "block"
84
+ }
85
+ });
86
+ css({
87
+ flex: 1,
88
+ minWidth: 0
89
+ });
90
+ var iconClass = css({
91
+ flexShrink: 0,
92
+ width: "20px",
93
+ height: "20px",
94
+ marginTop: "2px",
95
+ "& svg": {
96
+ display: "block",
97
+ width: "100%",
98
+ height: "100%"
99
+ },
100
+ ".toast-wrapper[data-type=\"success\"] &": { color: "var(--tsu-success-9)" },
101
+ ".toast-wrapper[data-type=\"error\"] &": { color: "var(--tsu-danger-9)" },
102
+ ".toast-wrapper[data-type=\"info\"] &": { color: "var(--tsu-info-9)" },
103
+ ".toast-wrapper[data-type=\"warning\"] &": { color: "var(--tsu-warning-9)" }
104
+ });
105
+ var typeIcons = {
106
+ success: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>`,
107
+ error: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>`,
108
+ info: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>`,
109
+ warning: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>`,
110
+ loading: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"/><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"/><line x1="2" y1="12" x2="6" y2="12"/><line x1="18" y1="12" x2="22" y2="12"/><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"/><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"/></svg>`
111
+ };
112
+ var wrapperClass = css({ display: "contents" });
113
+ var Toast$1 = (props = {}) => {
114
+ const [local, rest] = splitProps(props, ["className"]);
115
+ return () => {
116
+ const _el0 = _tmpl.cloneNode(true);
117
+ insert(_el0, () => jsx(Toast.Root, mergeProps(rest, { get className() {
118
+ return [
119
+ "toast-wrapper",
120
+ toastClass,
121
+ local.className
122
+ ].filter(Boolean).join(" ");
123
+ } })));
124
+ setProp(_el0, "className", () => wrapperClass);
125
+ return _el0;
126
+ };
127
+ };
128
+ var ToastTitle = (props = {}) => {
129
+ const [local, rest] = splitProps(props, ["className"]);
130
+ return jsx(Toast.Title, mergeProps(rest, { get className() {
131
+ return [titleClass, local.className].filter(Boolean).join(" ");
132
+ } }));
133
+ };
134
+ var ToastDescription = (props = {}) => {
135
+ const [local, rest] = splitProps(props, ["className"]);
136
+ return jsx(Toast.Description, mergeProps(rest, { get className() {
137
+ return [descriptionClass, local.className].filter(Boolean).join(" ");
138
+ } }));
139
+ };
140
+ var ToastCloseTrigger = (props = {}) => {
141
+ const [local, rest] = splitProps(props, ["className"]);
142
+ return jsx(Toast.CloseTrigger, mergeProps(rest, {
143
+ get className() {
144
+ return [closeClass, local.className].filter(Boolean).join(" ");
145
+ },
146
+ children: () => local.children || _tmpl2.cloneNode(true)
147
+ }));
148
+ };
149
+ var ToastIcon = ({ icon, type, className } = {}) => {
150
+ const svg = icon ?? (type ? typeIcons[type] : null);
151
+ if (!svg) return null;
152
+ if (typeof svg === "function") {
153
+ const IconComponent = svg;
154
+ return () => {
155
+ const _el0 = _tmpl.cloneNode(true);
156
+ insert(_el0, () => jsx(IconComponent, {}));
157
+ setProp(_el0, "className", () => [iconClass, className].filter(Boolean).join(" "));
158
+ return _el0;
159
+ };
160
+ }
161
+ return (() => {
162
+ const _el0 = _tmpl.cloneNode(true);
163
+ setProp(_el0, "className", () => [iconClass, className].filter(Boolean).join(" "));
164
+ setProp(_el0, "innerHTML", () => svg);
165
+ return _el0;
166
+ })();
167
+ };
168
+ var ToastToaster = Toast.Toaster;
169
+ Toast$1.origin = {
170
+ Root: Toast.Root,
171
+ Title: Toast.Title,
172
+ Description: Toast.Description,
173
+ CloseTrigger: Toast.CloseTrigger,
174
+ Toaster: Toast.Toaster
175
+ };
4
176
  //#endregion
5
- export { Toast_default as default };
6
-
7
- //# sourceMappingURL=Toast.js.map
177
+ export { ToastCloseTrigger, ToastDescription, ToastIcon, ToastTitle, ToastToaster, createToaster$1 as createToaster, Toast$1 as default };
@@ -1,7 +1,42 @@
1
+ import { jsx, mergeProps } from "@plastic-js/plastic/jsx-runtime";
2
+ import { css } from "@emotion/css";
1
3
  import { Toggle } from "@plastic-js/ark";
4
+ import { splitProps } from "@plastic-js/plastic";
2
5
  //#region src/components/Toggle.jsx
3
- var Toggle_default = Toggle;
6
+ var rootClass = css({
7
+ display: "inline-flex",
8
+ alignItems: "center",
9
+ justifyContent: "center",
10
+ padding: "var(--tsu-spacing-sm) var(--tsu-spacing-md)",
11
+ border: "1px solid var(--tsu-neutral-7)",
12
+ borderRadius: "var(--tsu-radius-l1-md)",
13
+ backgroundColor: "var(--tsu-bg)",
14
+ color: "var(--tsu-neutral-11)",
15
+ fontSize: "var(--tsu-font-size-sm)",
16
+ fontWeight: 500,
17
+ cursor: "pointer",
18
+ fontFamily: "inherit",
19
+ touchAction: "manipulation",
20
+ WebkitTapHighlightColor: "transparent",
21
+ transition: "background-color var(--tsu-transition-fast), border-color var(--tsu-transition-fast), color var(--tsu-transition-fast)",
22
+ "&[data-pressed]": {
23
+ backgroundColor: "var(--tsu-accent-9)",
24
+ borderColor: "var(--tsu-accent-8)",
25
+ color: "var(--tsu-bg)"
26
+ },
27
+ "&:disabled": {
28
+ opacity: .5,
29
+ cursor: "not-allowed"
30
+ }
31
+ });
32
+ var Toggle$1 = (props = {}) => {
33
+ const [local, rest] = splitProps(props, ["className", "children"]);
34
+ const classNames = [rootClass, local.className].filter(Boolean).join(" ");
35
+ return jsx(Toggle.Root, mergeProps(rest, {
36
+ className: classNames,
37
+ children: () => local.children
38
+ }));
39
+ };
40
+ Toggle$1.origin = { Root: Toggle.Root };
4
41
  //#endregion
5
- export { Toggle_default as default };
6
-
7
- //# sourceMappingURL=Toggle.js.map
42
+ export { Toggle$1 as default };