@purpur/library 9.0.7 → 9.0.8

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 (114) hide show
  1. package/CHANGELOG.json +12 -0
  2. package/CHANGELOG.md +8 -1
  3. package/dist/{autocomplete-6qSqK3SI.js → autocomplete-B_OBQM2h.js} +2 -2
  4. package/dist/{autocomplete-6qSqK3SI.js.map → autocomplete-B_OBQM2h.js.map} +1 -1
  5. package/dist/{autocomplete-B4dZx9zF.mjs → autocomplete-DJ3zbA0m.mjs} +2 -2
  6. package/dist/{autocomplete-B4dZx9zF.mjs.map → autocomplete-DJ3zbA0m.mjs.map} +1 -1
  7. package/dist/autocomplete.cjs.js +1 -1
  8. package/dist/autocomplete.es.js +1 -1
  9. package/dist/button-BxdChrq-.js +2 -0
  10. package/dist/button-BxdChrq-.js.map +1 -0
  11. package/dist/button-D-BBdNhd.mjs +105 -0
  12. package/dist/button-D-BBdNhd.mjs.map +1 -0
  13. package/dist/button.cjs.js +1 -1
  14. package/dist/button.es.js +1 -1
  15. package/dist/{calendar-vALLklKV.mjs → calendar-9p_aA7KY.mjs} +2 -2
  16. package/dist/{calendar-vALLklKV.mjs.map → calendar-9p_aA7KY.mjs.map} +1 -1
  17. package/dist/{calendar-CxkJMONO.js → calendar-BSdvi_DA.js} +2 -2
  18. package/dist/{calendar-CxkJMONO.js.map → calendar-BSdvi_DA.js.map} +1 -1
  19. package/dist/calendar.cjs.js +1 -1
  20. package/dist/calendar.es.js +1 -1
  21. package/dist/components/button/src/button.d.ts +2 -1
  22. package/dist/components/button/src/button.d.ts.map +1 -1
  23. package/dist/{date-field-CTJB8O0e.mjs → date-field-Ch2lM7-P.mjs} +2 -2
  24. package/dist/{date-field-CTJB8O0e.mjs.map → date-field-Ch2lM7-P.mjs.map} +1 -1
  25. package/dist/{date-field-CORqon6B.js → date-field-DTI5mQkg.js} +2 -2
  26. package/dist/{date-field-CORqon6B.js.map → date-field-DTI5mQkg.js.map} +1 -1
  27. package/dist/date-field.cjs.js +1 -1
  28. package/dist/date-field.es.js +1 -1
  29. package/dist/{date-picker-CJcIJ5VL.mjs → date-picker-Bt3IaH23.mjs} +4 -4
  30. package/dist/{date-picker-CJcIJ5VL.mjs.map → date-picker-Bt3IaH23.mjs.map} +1 -1
  31. package/dist/{date-picker-Dv3W05Hf.js → date-picker-Dk39IXG5.js} +2 -2
  32. package/dist/{date-picker-Dv3W05Hf.js.map → date-picker-Dk39IXG5.js.map} +1 -1
  33. package/dist/date-picker.cjs.js +1 -1
  34. package/dist/date-picker.es.js +1 -1
  35. package/dist/{drawer-DSFZ61OH.mjs → drawer-B6j8nfAY.mjs} +2 -2
  36. package/dist/{drawer-DSFZ61OH.mjs.map → drawer-B6j8nfAY.mjs.map} +1 -1
  37. package/dist/{drawer-Ce5LNpU2.js → drawer-CJsLdd2x.js} +2 -2
  38. package/dist/{drawer-Ce5LNpU2.js.map → drawer-CJsLdd2x.js.map} +1 -1
  39. package/dist/drawer.cjs.js +1 -1
  40. package/dist/drawer.es.js +1 -1
  41. package/dist/{hero-banner-CkSSlxTW.mjs → hero-banner-B5HKmkXc.mjs} +2 -2
  42. package/dist/{hero-banner-CkSSlxTW.mjs.map → hero-banner-B5HKmkXc.mjs.map} +1 -1
  43. package/dist/{hero-banner-JFaqW20R.js → hero-banner-OnNSuxNT.js} +2 -2
  44. package/dist/{hero-banner-JFaqW20R.js.map → hero-banner-OnNSuxNT.js.map} +1 -1
  45. package/dist/hero-banner.cjs.js +1 -1
  46. package/dist/hero-banner.es.js +1 -1
  47. package/dist/library.cjs.js +1 -1
  48. package/dist/library.es.js +17 -17
  49. package/dist/{modal-2ymCXTup.mjs → modal-B1eJu9HN.mjs} +2 -2
  50. package/dist/{modal-2ymCXTup.mjs.map → modal-B1eJu9HN.mjs.map} +1 -1
  51. package/dist/{modal-CXi2xez5.js → modal-CQiJ98iI.js} +2 -2
  52. package/dist/{modal-CXi2xez5.js.map → modal-CQiJ98iI.js.map} +1 -1
  53. package/dist/modal.cjs.js +1 -1
  54. package/dist/modal.es.js +1 -1
  55. package/dist/{notification-BFSOuDp8.mjs → notification-BtcM7Ndu.mjs} +2 -2
  56. package/dist/{notification-BFSOuDp8.mjs.map → notification-BtcM7Ndu.mjs.map} +1 -1
  57. package/dist/{notification-DdnI2rOh.js → notification-Dsg3Vzfi.js} +2 -2
  58. package/dist/{notification-DdnI2rOh.js.map → notification-Dsg3Vzfi.js.map} +1 -1
  59. package/dist/{notification-banner-CT4ew8IQ.js → notification-banner-B0CUuKZn.js} +2 -2
  60. package/dist/{notification-banner-CT4ew8IQ.js.map → notification-banner-B0CUuKZn.js.map} +1 -1
  61. package/dist/{notification-banner-CQvBezAL.mjs → notification-banner-CbKcE7o4.mjs} +2 -2
  62. package/dist/{notification-banner-CQvBezAL.mjs.map → notification-banner-CbKcE7o4.mjs.map} +1 -1
  63. package/dist/notification-banner.cjs.js +1 -1
  64. package/dist/notification-banner.es.js +1 -1
  65. package/dist/notification.cjs.js +1 -1
  66. package/dist/notification.es.js +1 -1
  67. package/dist/{popover-ZeQKmyEb.mjs → popover-D3b2gHm-.mjs} +2 -2
  68. package/dist/{popover-ZeQKmyEb.mjs.map → popover-D3b2gHm-.mjs.map} +1 -1
  69. package/dist/{popover-D3qWbbU4.js → popover-D6k4-oO1.js} +2 -2
  70. package/dist/{popover-D3qWbbU4.js.map → popover-D6k4-oO1.js.map} +1 -1
  71. package/dist/popover.cjs.js +1 -1
  72. package/dist/popover.es.js +1 -1
  73. package/dist/purpur.css +1 -1
  74. package/dist/{quantity-selector-CjSAaj7d.js → quantity-selector-Bc-4Dnpc.js} +2 -2
  75. package/dist/{quantity-selector-CjSAaj7d.js.map → quantity-selector-Bc-4Dnpc.js.map} +1 -1
  76. package/dist/{quantity-selector-HvyYSKah.mjs → quantity-selector-Djf8APeL.mjs} +3 -3
  77. package/dist/{quantity-selector-HvyYSKah.mjs.map → quantity-selector-Djf8APeL.mjs.map} +1 -1
  78. package/dist/quantity-selector.cjs.js +1 -1
  79. package/dist/quantity-selector.es.js +1 -1
  80. package/dist/{search-field-CanOlkIY.js → search-field-0CBoxcNH.js} +2 -2
  81. package/dist/{search-field-CanOlkIY.js.map → search-field-0CBoxcNH.js.map} +1 -1
  82. package/dist/{search-field-BOmCVr5b.mjs → search-field-aP_i6Nr0.mjs} +3 -3
  83. package/dist/{search-field-BOmCVr5b.mjs.map → search-field-aP_i6Nr0.mjs.map} +1 -1
  84. package/dist/search-field.cjs.js +1 -1
  85. package/dist/search-field.es.js +1 -1
  86. package/dist/{stepper-DYjJgEHL.js → stepper-BaoOY4Ea.js} +2 -2
  87. package/dist/{stepper-DYjJgEHL.js.map → stepper-BaoOY4Ea.js.map} +1 -1
  88. package/dist/{stepper-D7T0wed7.mjs → stepper-CTdGj87I.mjs} +3 -3
  89. package/dist/{stepper-D7T0wed7.mjs.map → stepper-CTdGj87I.mjs.map} +1 -1
  90. package/dist/stepper.cjs.js +1 -1
  91. package/dist/stepper.es.js +1 -1
  92. package/dist/{table-B4pts_r4.mjs → table-D7qthqj_.mjs} +5 -5
  93. package/dist/{table-B4pts_r4.mjs.map → table-D7qthqj_.mjs.map} +1 -1
  94. package/dist/{table-Bv_BISXV.js → table-TdOPMFoP.js} +2 -2
  95. package/dist/{table-Bv_BISXV.js.map → table-TdOPMFoP.js.map} +1 -1
  96. package/dist/table.cjs.js +1 -1
  97. package/dist/table.es.js +1 -1
  98. package/dist/{text-field-5rIuW8gc.mjs → text-field-9zPmL99g.mjs} +2 -2
  99. package/dist/{text-field-5rIuW8gc.mjs.map → text-field-9zPmL99g.mjs.map} +1 -1
  100. package/dist/{text-field-Xt6T3zjO.js → text-field-CKCwxTJX.js} +2 -2
  101. package/dist/{text-field-Xt6T3zjO.js.map → text-field-CKCwxTJX.js.map} +1 -1
  102. package/dist/text-field.cjs.js +1 -1
  103. package/dist/text-field.es.js +1 -1
  104. package/dist/{tooltip-DkwyNxrQ.mjs → tooltip-BtGtu3ph.mjs} +2 -2
  105. package/dist/{tooltip-DkwyNxrQ.mjs.map → tooltip-BtGtu3ph.mjs.map} +1 -1
  106. package/dist/{tooltip-svlZkXBs.js → tooltip-eUP35j3v.js} +2 -2
  107. package/dist/{tooltip-svlZkXBs.js.map → tooltip-eUP35j3v.js.map} +1 -1
  108. package/dist/tooltip.cjs.js +1 -1
  109. package/dist/tooltip.es.js +1 -1
  110. package/package.json +25 -25
  111. package/dist/button-BfYKNBmC.mjs +0 -102
  112. package/dist/button-BfYKNBmC.mjs.map +0 -1
  113. package/dist/button-DDYGuqZ0.js +0 -2
  114. package/dist/button-DDYGuqZ0.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpur/library",
3
- "version": "9.0.7",
3
+ "version": "9.0.8",
4
4
  "license": "AGPL-3.0-only",
5
5
  "sideEffects": [
6
6
  "*.css",
@@ -106,71 +106,71 @@
106
106
  "vite-plugin-static-copy": "~3.1.4",
107
107
  "vite": "^7.2.2",
108
108
  "shx": "~0.4.0",
109
+ "@purpur/accordion": "8.21.0",
109
110
  "@purpur/action": "8.21.0",
110
- "@purpur/alert-badge": "8.21.0",
111
111
  "@purpur/badge": "8.21.0",
112
+ "@purpur/alert-badge": "8.21.0",
112
113
  "@purpur/autocomplete": "8.21.0",
113
- "@purpur/accordion": "8.21.0",
114
114
  "@purpur/breadcrumbs": "8.21.0",
115
- "@purpur/calendar": "8.21.0",
116
- "@purpur/button": "8.21.0",
117
115
  "@purpur/card": "8.21.0",
116
+ "@purpur/button": "8.21.0",
117
+ "@purpur/calendar": "8.21.0",
118
118
  "@purpur/checkbox": "8.21.0",
119
119
  "@purpur/chip-group": "8.21.0",
120
120
  "@purpur/color-dot": "8.21.0",
121
- "@purpur/container": "8.21.0",
122
121
  "@purpur/common-types": "8.21.0",
123
122
  "@purpur/component-rig": "1.0.0",
124
- "@purpur/content-block": "8.21.0",
123
+ "@purpur/container": "8.21.0",
125
124
  "@purpur/countdown": "8.21.0",
126
125
  "@purpur/counter-badge": "8.21.0",
126
+ "@purpur/content-block": "8.21.0",
127
127
  "@purpur/cta-link": "8.21.0",
128
- "@purpur/date-field": "8.21.0",
129
128
  "@purpur/date-picker": "8.21.0",
129
+ "@purpur/date-field": "8.21.0",
130
130
  "@purpur/dismissable-chip-group": "8.21.0",
131
+ "@purpur/field-helper-text": "8.21.0",
131
132
  "@purpur/drawer": "8.21.0",
132
133
  "@purpur/field-error-text": "8.21.0",
133
- "@purpur/field-helper-text": "8.21.0",
134
134
  "@purpur/footer": "8.21.0",
135
135
  "@purpur/heading": "8.21.0",
136
- "@purpur/hero-banner": "8.21.0",
137
136
  "@purpur/grid": "8.21.0",
138
137
  "@purpur/icon": "8.21.0",
138
+ "@purpur/hero-banner": "8.21.0",
139
139
  "@purpur/illustrative-icon": "8.21.0",
140
- "@purpur/label": "8.21.0",
141
140
  "@purpur/link": "8.21.0",
142
- "@purpur/logo": "8.21.0",
141
+ "@purpur/label": "8.21.0",
143
142
  "@purpur/listbox": "8.21.0",
144
- "@purpur/modal": "8.21.0",
145
- "@purpur/notification": "8.21.0",
143
+ "@purpur/logo": "8.21.0",
146
144
  "@purpur/notification-banner": "8.21.0",
145
+ "@purpur/notification": "8.21.0",
146
+ "@purpur/modal": "8.21.0",
147
+ "@purpur/paragraph": "8.21.0",
147
148
  "@purpur/pagination": "8.21.0",
149
+ "@purpur/product-card": "8.21.0",
148
150
  "@purpur/password-field": "8.21.0",
149
- "@purpur/paragraph": "8.21.0",
150
151
  "@purpur/popover": "8.21.0",
151
- "@purpur/product-card": "8.21.0",
152
- "@purpur/promotion-card": "8.21.0",
153
152
  "@purpur/quantity-selector": "8.21.0",
153
+ "@purpur/promotion-card": "8.21.0",
154
154
  "@purpur/radio-button-group": "8.21.0",
155
+ "@purpur/radio-card-group": "8.21.0",
155
156
  "@purpur/search-field": "8.21.0",
156
157
  "@purpur/rich-text": "8.21.0",
157
- "@purpur/radio-card-group": "8.21.0",
158
- "@purpur/select": "8.21.0",
159
158
  "@purpur/skeleton": "8.21.0",
160
- "@purpur/slider": "8.21.0",
161
159
  "@purpur/spacer": "8.21.0",
162
160
  "@purpur/spinner": "8.21.0",
161
+ "@purpur/select": "8.21.0",
162
+ "@purpur/slider": "8.21.0",
163
+ "@purpur/stepper": "8.21.0",
163
164
  "@purpur/table": "8.21.0",
164
- "@purpur/text-area": "8.21.0",
165
165
  "@purpur/tabs": "8.21.0",
166
- "@purpur/stepper": "8.21.0",
166
+ "@purpur/text-area": "8.21.0",
167
167
  "@purpur/text-field": "8.21.0",
168
- "@purpur/theme": "8.21.0",
169
168
  "@purpur/text-spacing": "8.21.0",
170
169
  "@purpur/toggle": "8.21.0",
170
+ "@purpur/theme": "8.21.0",
171
+ "@purpur/tokens": "8.21.0",
171
172
  "@purpur/tooltip": "8.21.0",
172
- "@purpur/visually-hidden": "8.21.0",
173
- "@purpur/tokens": "8.21.0"
173
+ "@purpur/visually-hidden": "8.21.0"
174
174
  },
175
175
  "peerDependencies": {
176
176
  "@types/react": "^18 || ^19",
@@ -1,102 +0,0 @@
1
- import { jsxs as y, jsx as g } from "react/jsx-runtime";
2
- import { forwardRef as T } from "react";
3
- import { a as $ } from "./spinner-DRQN6YdK.mjs";
4
- import { c as E } from "./bind-CU-R61T-.mjs";
5
- const N = {
6
- PRIMARY: "primary",
7
- SECONDARY: "secondary",
8
- EXPRESSIVE: "expressive"
9
- }, R = {
10
- LG: "lg"
11
- }, S = {
12
- "purpur-button": "_purpur-button_m4udv_1",
13
- "purpur-button--xs": "_purpur-button--xs_m4udv_22",
14
- "purpur-button--icon-only": "_purpur-button--icon-only_m4udv_25",
15
- "purpur-button--sm": "_purpur-button--sm_m4udv_28",
16
- "purpur-button--md": "_purpur-button--md_m4udv_34",
17
- "purpur-button--lg": "_purpur-button--lg_m4udv_40",
18
- "purpur-button--full-width": "_purpur-button--full-width_m4udv_46",
19
- "purpur-button--primary": "_purpur-button--primary_m4udv_64",
20
- "purpur-button--disabled": "_purpur-button--disabled_m4udv_68",
21
- "purpur-button--primary-negative": "_purpur-button--primary-negative_m4udv_74",
22
- "purpur-button--secondary": "_purpur-button--secondary_m4udv_86",
23
- "purpur-button--secondary-negative": "_purpur-button--secondary-negative_m4udv_97",
24
- "purpur-button--expressive": "_purpur-button--expressive_m4udv_108",
25
- "purpur-button--expressive-negative": "_purpur-button--expressive-negative_m4udv_118",
26
- "purpur-button--negative": "_purpur-button--negative_m4udv_130",
27
- "purpur-button--destructive": "_purpur-button--destructive_m4udv_137",
28
- "purpur-button--destructive-negative": "_purpur-button--destructive-negative_m4udv_147",
29
- "purpur-button--text": "_purpur-button--text_m4udv_157",
30
- "purpur-button--text-negative": "_purpur-button--text-negative_m4udv_157",
31
- "purpur-button__spinner": "_purpur-button__spinner_m4udv_202"
32
- }, A = {
33
- ...N,
34
- DESTRUCTIVE: "destructive",
35
- TEXT: "text"
36
- }, C = Object.values(A), a = E.bind(S), u = "purpur-button", j = ["button", "submit", "reset"], B = T(
37
- ({
38
- children: d,
39
- className: m,
40
- disabled: r = !1,
41
- fullWidth: v = !1,
42
- iconOnly: n,
43
- loading: t = !1,
44
- negative: p = !1,
45
- onClick: o,
46
- size: s = "md",
47
- variant: e,
48
- type: c = "button",
49
- ..._
50
- }, l) => {
51
- if (n && e === "destructive")
52
- return null;
53
- const x = a(
54
- [
55
- u,
56
- `${u}--${p ? `${e}-negative` : e}`,
57
- `${u}--${s}`
58
- ],
59
- {
60
- [`${u}--icon-only`]: n,
61
- [`${u}--negative`]: p,
62
- [`${u}--full-width`]: v,
63
- [`${u}--disabled`]: r || t
64
- },
65
- m
66
- ), f = (i) => {
67
- r || t ? i.preventDefault() : o && o(i);
68
- }, b = !!_["aria-disabled"] || r || t;
69
- return /* @__PURE__ */ y(
70
- "button",
71
- {
72
- className: x,
73
- type: c,
74
- ref: l,
75
- "aria-disabled": b,
76
- onClick: f,
77
- ..._,
78
- children: [
79
- t && /* @__PURE__ */ g(
80
- $,
81
- {
82
- size: s === R.LG ? "xs" : "xxs",
83
- negative: p,
84
- disabled: b,
85
- className: a(`${u}__spinner`)
86
- }
87
- ),
88
- " ",
89
- d
90
- ]
91
- }
92
- );
93
- }
94
- );
95
- B.displayName = "Button";
96
- export {
97
- j as B,
98
- A as a,
99
- B as b,
100
- C as c
101
- };
102
- //# sourceMappingURL=button-BfYKNBmC.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-BfYKNBmC.mjs","sources":["../../action/src/action.tsx","../../../components/button/src/button.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n","import React, { type ButtonHTMLAttributes, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpur/action\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Spinner } from \"@purpur/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> & BaseProps<\"button\"> & { loading?: boolean };\n\nexport const Button = forwardRef<\n HTMLButtonElement,\n Omit<ButtonProps, \"type\"> & { type?: ButtonType }\n>(\n (\n {\n children,\n className,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n },\n ref\n ) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner\n size={size === SIZE.LG ? \"xs\" : \"xxs\"}\n negative={negative}\n disabled={_disabled}\n className={cx(`${rootClassName}__spinner`)}\n />\n )}{\" \"}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"names":["VARIANT","SIZE","BUTTON_VARIANT","buttonVariants","cx","c","styles","rootClassName","BUTTON_TYPES","Button","forwardRef","children","className","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","classes","handleClick","e","_disabled","jsxs","jsx","Spinner"],"mappings":";;;;AAEO,MAAMA,IAAU;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAKaC,IAAO;AAAA,EAIlB,IAAI;AACN;;;;;;;;;;;;;;;;;;;;;GCRaC,IAAiB;AAAA,EAC5B,GAAGF;AAAA,EACH,aAAa;AAAA,EACb,MAAM;AACR,GAEaG,IAAiB,OAAO,OAAOD,CAAc,GAGpDE,IAAKC,EAAE,KAAKC,CAAM,GAClBC,IAAgB,iBAGTC,IAA6B,CAAC,UAAU,UAAU,OAAO,GAIzDC,IAASC;AAAA,EAIpB,CACE;AAAA,IACE,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,UAAAC,IAAW;AAAA,IACX,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,SAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,QAAIR,KAAYK,MAAY;AAC1B,aAAO;AAGT,UAAMI,IAAUpB;AAAA,MACd;AAAA,QACEG;AAAA,QACA,GAAGA,CAAa,KAAKU,IAAW,GAAGG,CAAO,cAAcA,CAAO;AAAA,QAC/D,GAAGb,CAAa,KAAKY,CAAI;AAAA,MAAA;AAAA,MAE3B;AAAA,QACE,CAAC,GAAGZ,CAAa,aAAa,GAAGQ;AAAA,QACjC,CAAC,GAAGR,CAAa,YAAY,GAAGU;AAAA,QAChC,CAAC,GAAGV,CAAa,cAAc,GAAGO;AAAA,QAClC,CAAC,GAAGP,CAAa,YAAY,GAAGM,KAAYG;AAAA,MAAA;AAAA,MAE9CJ;AAAA,IAAA,GAGIa,IAAc,CAACC,MAAqC;AACxD,MAAIb,KAAYG,IACdU,EAAE,eAAA,IACOR,KACTA,EAAQQ,CAAC;AAAA,IAEb,GAEMC,IAAY,EAAQL,EAAM,eAAe,KAAMT,KAAYG;AAEjE,WACE,gBAAAY;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWJ;AAAA,QACX,MAAAH;AAAA,QACA,KAAAE;AAAA,QACA,iBAAeI;AAAA,QACf,SAASF;AAAA,QACR,GAAGH;AAAA,QAEH,UAAA;AAAA,UAAAN,KACC,gBAAAa;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,MAAMX,MAASlB,EAAK,KAAK,OAAO;AAAA,cAChC,UAAAgB;AAAA,cACA,UAAUU;AAAA,cACV,WAAWvB,EAAG,GAAGG,CAAa,WAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAE1C;AAAA,UACFI;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEAF,EAAO,cAAc;"}
@@ -1,2 +0,0 @@
1
- "use strict";const d=require("react/jsx-runtime"),N=require("react"),R=require("./spinner-tKunS_o-.js"),E=require("./bind-DeUYJ6m9.js"),$={PRIMARY:"primary",SECONDARY:"secondary",EXPRESSIVE:"expressive"},A={LG:"lg"},B={"purpur-button":"_purpur-button_m4udv_1","purpur-button--xs":"_purpur-button--xs_m4udv_22","purpur-button--icon-only":"_purpur-button--icon-only_m4udv_25","purpur-button--sm":"_purpur-button--sm_m4udv_28","purpur-button--md":"_purpur-button--md_m4udv_34","purpur-button--lg":"_purpur-button--lg_m4udv_40","purpur-button--full-width":"_purpur-button--full-width_m4udv_46","purpur-button--primary":"_purpur-button--primary_m4udv_64","purpur-button--disabled":"_purpur-button--disabled_m4udv_68","purpur-button--primary-negative":"_purpur-button--primary-negative_m4udv_74","purpur-button--secondary":"_purpur-button--secondary_m4udv_86","purpur-button--secondary-negative":"_purpur-button--secondary-negative_m4udv_97","purpur-button--expressive":"_purpur-button--expressive_m4udv_108","purpur-button--expressive-negative":"_purpur-button--expressive-negative_m4udv_118","purpur-button--negative":"_purpur-button--negative_m4udv_130","purpur-button--destructive":"_purpur-button--destructive_m4udv_137","purpur-button--destructive-negative":"_purpur-button--destructive-negative_m4udv_147","purpur-button--text":"_purpur-button--text_m4udv_157","purpur-button--text-negative":"_purpur-button--text-negative_m4udv_157","purpur-button__spinner":"_purpur-button__spinner_m4udv_202"},v={...$,DESTRUCTIVE:"destructive",TEXT:"text"},S=Object.values(v),a=E.c.bind(B),u="purpur-button",I=["button","submit","reset"],c=N.forwardRef(({children:m,className:l,disabled:r=!1,fullWidth:x=!1,iconOnly:p,loading:t=!1,negative:e=!1,onClick:s,size:o="md",variant:n,type:T="button",..._},y)=>{if(p&&n==="destructive")return null;const f=a([u,`${u}--${e?`${n}-negative`:n}`,`${u}--${o}`],{[`${u}--icon-only`]:p,[`${u}--negative`]:e,[`${u}--full-width`]:x,[`${u}--disabled`]:r||t},l),g=b=>{r||t?b.preventDefault():s&&s(b)},i=!!_["aria-disabled"]||r||t;return d.jsxs("button",{className:f,type:T,ref:y,"aria-disabled":i,onClick:g,..._,children:[t&&d.jsx(R.Spinner,{size:o===A.LG?"xs":"xxs",negative:e,disabled:i,className:a(`${u}__spinner`)})," ",m]})});c.displayName="Button";exports.BUTTON_TYPES=I;exports.BUTTON_VARIANT=v;exports.Button=c;exports.buttonVariants=S;
2
- //# sourceMappingURL=button-DDYGuqZ0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-DDYGuqZ0.js","sources":["../../action/src/action.tsx","../../../components/button/src/button.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n","import React, { type ButtonHTMLAttributes, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpur/action\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Spinner } from \"@purpur/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> & BaseProps<\"button\"> & { loading?: boolean };\n\nexport const Button = forwardRef<\n HTMLButtonElement,\n Omit<ButtonProps, \"type\"> & { type?: ButtonType }\n>(\n (\n {\n children,\n className,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n },\n ref\n ) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner\n size={size === SIZE.LG ? \"xs\" : \"xxs\"}\n negative={negative}\n disabled={_disabled}\n className={cx(`${rootClassName}__spinner`)}\n />\n )}{\" \"}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"names":["VARIANT","SIZE","BUTTON_VARIANT","buttonVariants","cx","c","styles","rootClassName","BUTTON_TYPES","Button","forwardRef","children","className","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","classes","handleClick","e","_disabled","jsxs","jsx","Spinner"],"mappings":"wIAEaA,EAAU,CACrB,QAAS,UACT,UAAW,YACX,WAAY,YACd,EAKaC,EAAO,CAIlB,GAAI,IACN,mwCCRaC,EAAiB,CAC5B,GAAGF,EACH,YAAa,cACb,KAAM,MACR,EAEaG,EAAiB,OAAO,OAAOD,CAAc,EAGpDE,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAClBC,EAAgB,gBAGTC,EAA6B,CAAC,SAAU,SAAU,OAAO,EAIzDC,EAASC,EAAAA,WAIpB,CACE,CACE,SAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,SAAAC,EACA,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,QAAAC,EACA,KAAAC,EAAO,KACP,QAAAC,EACA,KAAAC,EAAO,SACP,GAAGC,CAAA,EAELC,IACG,CACH,GAAIR,GAAYK,IAAY,cAC1B,OAAO,KAGT,MAAMI,EAAUpB,EACd,CACEG,EACA,GAAGA,CAAa,KAAKU,EAAW,GAAGG,CAAO,YAAcA,CAAO,GAC/D,GAAGb,CAAa,KAAKY,CAAI,EAAA,EAE3B,CACE,CAAC,GAAGZ,CAAa,aAAa,EAAGQ,EACjC,CAAC,GAAGR,CAAa,YAAY,EAAGU,EAChC,CAAC,GAAGV,CAAa,cAAc,EAAGO,EAClC,CAAC,GAAGP,CAAa,YAAY,EAAGM,GAAYG,CAAA,EAE9CJ,CAAA,EAGIa,EAAeC,GAAqC,CACpDb,GAAYG,EACdU,EAAE,eAAA,EACOR,GACTA,EAAQQ,CAAC,CAEb,EAEMC,EAAY,EAAQL,EAAM,eAAe,GAAMT,GAAYG,EAEjE,OACEY,EAAAA,KAAC,SAAA,CACC,UAAWJ,EACX,KAAAH,EACA,IAAAE,EACA,gBAAeI,EACf,QAASF,EACR,GAAGH,EAEH,SAAA,CAAAN,GACCa,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAMX,IAASlB,EAAK,GAAK,KAAO,MAChC,SAAAgB,EACA,SAAUU,EACV,UAAWvB,EAAG,GAAGG,CAAa,WAAW,CAAA,CAAA,EAE1C,IACFI,CAAA,CAAA,CAAA,CAGP,CACF,EAEAF,EAAO,YAAc"}