@oscarpalmer/oui 0.38.0 → 0.40.0

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 (264) hide show
  1. package/README.md +1 -1
  2. package/dist/css/badge.css +11 -8
  3. package/dist/css/button.css +106 -14
  4. package/dist/css/color-picker.css +555 -73
  5. package/dist/css/color.css +86 -86
  6. package/dist/css/combobox.css +98 -4
  7. package/dist/css/content.css +7 -6
  8. package/dist/css/floatable.css +1 -3
  9. package/dist/css/form.css +99 -6
  10. package/dist/css/icon.css +99 -0
  11. package/dist/css/listbox.css +3 -0
  12. package/dist/css/message.css +4 -3
  13. package/dist/css/mixins/button.mixins.css +1 -0
  14. package/dist/css/reset.css +1 -1
  15. package/dist/css/tabs.css +95 -3
  16. package/dist/css/typography.css +90 -0
  17. package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
  18. package/dist/js/color-picker/color-picker.constants.mjs +60 -0
  19. package/dist/js/color-picker/color-picker.dom.d.mts +8 -0
  20. package/dist/js/color-picker/color-picker.dom.mjs +191 -0
  21. package/dist/js/color-picker/color-picker.event.d.mts +9 -0
  22. package/dist/js/color-picker/color-picker.event.mjs +2 -0
  23. package/dist/js/color-picker/color-picker.form.d.mts +5 -0
  24. package/dist/js/color-picker/color-picker.form.mjs +27 -0
  25. package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
  26. package/dist/js/color-picker/color-picker.misc.mjs +2 -0
  27. package/dist/js/color-picker/color-picker.model.d.mts +2 -0
  28. package/dist/js/color-picker/color-picker.model.mjs +24 -0
  29. package/dist/js/color-picker/color-picker.output.d.mts +8 -0
  30. package/dist/js/color-picker/color-picker.output.mjs +235 -0
  31. package/dist/js/color-picker/color-picker.state.d.mts +8 -0
  32. package/dist/js/color-picker/color-picker.state.mjs +2 -0
  33. package/dist/js/{color-picker.d.mts → color-picker/index.d.mts} +10 -43
  34. package/dist/js/color-picker/index.mjs +305 -0
  35. package/dist/js/color-picker.constants-D1mxw_Le.d.mts +179 -0
  36. package/dist/js/color-picker.event-Cksj5TvS.mjs +500 -0
  37. package/dist/js/color-picker.misc-CtsXGrOe.d.mts +27 -0
  38. package/dist/js/combobox/combobox.constants.d.mts +2 -0
  39. package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
  40. package/dist/js/combobox/combobox.dom.d.mts +26 -0
  41. package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +44 -37
  42. package/dist/js/combobox/combobox.event.d.mts +22 -0
  43. package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
  44. package/dist/js/combobox/combobox.misc.d.mts +2 -0
  45. package/dist/js/combobox/{misc.combobox.mjs → combobox.misc.mjs} +1 -1
  46. package/dist/js/combobox/combobox.model.d.mts +2 -0
  47. package/dist/js/combobox/combobox.state.d.mts +10 -0
  48. package/dist/js/combobox/combobox.state.mjs +2 -0
  49. package/dist/js/combobox/index.d.mts +163 -2
  50. package/dist/js/combobox/index.mjs +53 -52
  51. package/dist/js/combobox.constants-DZVkMP5g.d.mts +19 -0
  52. package/dist/js/combobox.misc-C1tPZZDi.d.mts +22 -0
  53. package/dist/js/{combobox/models.combobox.d.mts → combobox.model-oDV06XCN.d.mts} +6 -6
  54. package/dist/js/{state.combobox-Qm3FWzYW.mjs → combobox.state-BfJ3Hxg8.mjs} +96 -82
  55. package/dist/js/constants.listbox-C5Ap6Ag_.d.mts +9 -0
  56. package/dist/js/dialog/dialog.model.d.mts +2 -0
  57. package/dist/js/dialog/dialog.model.mjs +11 -0
  58. package/dist/js/dialog/index.d.mts +12 -0
  59. package/dist/js/dialog/index.mjs +123 -0
  60. package/dist/js/dialog.model-DX2mndMh.d.mts +45 -0
  61. package/dist/js/floatable/floatable.embedded.d.mts +2 -2
  62. package/dist/js/floatable/floatable.embedded.mjs +64 -92
  63. package/dist/js/floatable/floatable.model.d.mts +2 -0
  64. package/dist/js/floatable/floatable.model.mjs +23 -0
  65. package/dist/js/floatable/floatable.standalone.d.mts +2 -1
  66. package/dist/js/floatable.embedded-MeTyXjFn.d.mts +17 -0
  67. package/dist/js/floatable.model-DXsQgoU7.d.mts +62 -0
  68. package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
  69. package/dist/js/focus-trap/focus-trap.embedded.mjs +112 -134
  70. package/dist/js/focus-trap/focus-trap.model.d.mts +2 -0
  71. package/dist/js/focus-trap/focus-trap.model.mjs +15 -0
  72. package/dist/js/focus-trap/focus-trap.standalone.d.mts +2 -1
  73. package/dist/js/focus-trap.embedded-DIU05m1z.d.mts +13 -0
  74. package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.model-BeX6UYlw.d.mts} +16 -18
  75. package/dist/js/index.d.mts +26 -14
  76. package/dist/js/index.mjs +18 -15
  77. package/dist/js/internal/attributable.d.mts +2 -3
  78. package/dist/js/internal/attributable.mjs +3 -2
  79. package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
  80. package/dist/js/internal/draggable/draggable.model.mjs +37 -0
  81. package/dist/js/internal/draggable/index.d.mts +13 -0
  82. package/dist/js/internal/{draggable.mjs → draggable/index.mjs} +83 -114
  83. package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
  84. package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
  85. package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
  86. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  87. package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
  88. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  89. package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
  90. package/dist/js/internal/listbox/listbox.event.mjs +23 -20
  91. package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
  92. package/dist/js/internal/listbox/listbox.form.mjs +15 -12
  93. package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
  94. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  95. package/dist/js/internal/listbox/listbox.model.d.mts +2 -2
  96. package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
  97. package/dist/js/internal/listbox/listbox.state.mjs +19 -20
  98. package/dist/js/internal/misc.d.mts +5 -4
  99. package/dist/js/internal/misc.mjs +7 -1
  100. package/dist/js/internal/navigable/index.d.mts +6 -0
  101. package/dist/js/internal/navigable/index.mjs +125 -0
  102. package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
  103. package/dist/js/internal/navigable/navigable.model.mjs +18 -0
  104. package/dist/js/l10n/index.d.mts +9 -0
  105. package/dist/js/{l10n.mjs → l10n/index.mjs} +50 -23
  106. package/dist/js/l10n/l10n.model.d.mts +2 -0
  107. package/dist/js/l10n/l10n.model.mjs +9 -0
  108. package/dist/js/l10n.model-D6a9frgl.d.mts +26 -0
  109. package/dist/js/listbox/constants.listbox.d.mts +2 -2
  110. package/dist/js/listbox/constants.listbox.mjs +10 -14
  111. package/dist/js/listbox/event.listbox.d.mts +6 -7
  112. package/dist/js/listbox/event.listbox.mjs +47 -1
  113. package/dist/js/listbox/index.d.mts +8 -6
  114. package/dist/js/listbox/index.mjs +47 -49
  115. package/dist/js/listbox/misc.listbox.d.mts +1 -1
  116. package/dist/js/listbox/misc.listbox.mjs +1 -1
  117. package/dist/js/listbox/state.listbox.d.mts +8 -10
  118. package/dist/js/listbox/state.listbox.mjs +2 -2
  119. package/dist/js/{listbox.data-C7CRa5Ya.mjs → listbox.data-BQyZGKgr.mjs} +83 -66
  120. package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-CuBOj4qe.d.mts} +15 -11
  121. package/dist/js/menu/index.mjs +167 -0
  122. package/dist/js/menu/menu.model.d.mts +33 -0
  123. package/dist/js/menu/menu.model.mjs +15 -0
  124. package/dist/js/{misc.listbox-Cyz2CRDy.mjs → misc.listbox-CjfBUbHD.mjs} +27 -69
  125. package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-CtoGvXQo.d.mts} +2 -2
  126. package/dist/js/movable/movable.embedded.d.mts +2 -2
  127. package/dist/js/movable/movable.embedded.mjs +60 -72
  128. package/dist/js/movable/movable.model.d.mts +2 -0
  129. package/dist/js/movable/movable.model.mjs +12 -0
  130. package/dist/js/movable/movable.standalone.d.mts +2 -1
  131. package/dist/js/movable.embedded-DoyXLegc.d.mts +11 -0
  132. package/dist/js/movable.model-BHaK_mKw.d.mts +186 -0
  133. package/dist/js/navigable.model-BPOM8DZk.d.mts +44 -0
  134. package/dist/js/popover/index.d.mts +12 -0
  135. package/dist/js/{popover.mjs → popover/index.mjs} +40 -50
  136. package/dist/js/popover/popover.model.d.mts +2 -0
  137. package/dist/js/popover/popover.model.mjs +12 -0
  138. package/dist/js/popover.model-ubKNG612.d.mts +38 -0
  139. package/dist/js/resizable/resizable.embedded.d.mts +2 -2
  140. package/dist/js/resizable/resizable.embedded.mjs +44 -59
  141. package/dist/js/resizable/resizable.model.d.mts +2 -0
  142. package/dist/js/resizable/resizable.model.mjs +21 -0
  143. package/dist/js/resizable/resizable.standalone.d.mts +2 -1
  144. package/dist/js/resizable.embedded-Bf1qBUdt.d.mts +11 -0
  145. package/dist/js/resizable.model-BwzJcTVJ.d.mts +46 -0
  146. package/dist/js/sortable/sortable.embedded.d.mts +2 -2
  147. package/dist/js/sortable/sortable.embedded.mjs +69 -82
  148. package/dist/js/sortable/sortable.model.d.mts +2 -0
  149. package/dist/js/sortable/sortable.model.mjs +24 -0
  150. package/dist/js/sortable/sortable.standalone.d.mts +2 -1
  151. package/dist/js/sortable.embedded-DzBKAwSG.d.mts +11 -0
  152. package/dist/js/{splitter.d.mts → splitter/index.d.mts} +8 -7
  153. package/dist/js/splitter/index.mjs +284 -0
  154. package/dist/js/splitter/splitter.model.d.mts +2 -0
  155. package/dist/js/splitter/splitter.model.mjs +37 -0
  156. package/dist/js/splitter.model-DOLNjLVS.d.mts +57 -0
  157. package/dist/js/{tabs.d.mts → tabs/index.d.mts} +7 -8
  158. package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
  159. package/dist/js/tabs/tabs.model.d.mts +2 -0
  160. package/dist/js/tabs/tabs.model.mjs +18 -0
  161. package/dist/js/tabs.model-DRBX_JtI.d.mts +40 -0
  162. package/dist/js/toolbar/index.mjs +27 -0
  163. package/dist/js/toolbar/toolbar.model.d.mts +11 -0
  164. package/dist/js/toolbar/toolbar.model.mjs +7 -0
  165. package/dist/js/tooltip/index.d.mts +19 -0
  166. package/dist/js/{tooltip.mjs → tooltip/index.mjs} +60 -85
  167. package/dist/js/tooltip/tooltip.model.d.mts +2 -0
  168. package/dist/js/tooltip/tooltip.model.mjs +15 -0
  169. package/dist/js/tooltip.model-DRkY_BsL.d.mts +37 -0
  170. package/package.json +43 -37
  171. package/dist/js/color-picker.mjs +0 -924
  172. package/dist/js/combobox/constants.combobox.d.mts +0 -2
  173. package/dist/js/combobox/dom.combobox.d.mts +0 -27
  174. package/dist/js/combobox/event.combobox.d.mts +0 -23
  175. package/dist/js/combobox/misc.combobox.d.mts +0 -2
  176. package/dist/js/combobox/state.combobox.d.mts +0 -12
  177. package/dist/js/combobox/state.combobox.mjs +0 -2
  178. package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
  179. package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
  180. package/dist/js/dialog.d.mts +0 -47
  181. package/dist/js/dialog.mjs +0 -131
  182. package/dist/js/draggable-a6w0J1OD.d.mts +0 -154
  183. package/dist/js/floatable.embedded-Bct4U5Dm.d.mts +0 -69
  184. package/dist/js/index-DJdFlTLm.d.mts +0 -177
  185. package/dist/js/internal/draggable.d.mts +0 -2
  186. package/dist/js/internal/navigable.d.mts +0 -37
  187. package/dist/js/internal/navigable.mjs +0 -135
  188. package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
  189. package/dist/js/l10n.d.mts +0 -2
  190. package/dist/js/menu.mjs +0 -172
  191. package/dist/js/popover.d.mts +0 -38
  192. package/dist/js/resizable.embedded-3qoR0Bjm.d.mts +0 -34
  193. package/dist/js/splitter.mjs +0 -322
  194. package/dist/js/toolbar.mjs +0 -31
  195. package/dist/js/tooltip.d.mts +0 -45
  196. package/src/css/a11y.scss +0 -13
  197. package/src/css/badge.scss +0 -62
  198. package/src/css/button.scss +0 -50
  199. package/src/css/color-picker.scss +0 -344
  200. package/src/css/color.scss +0 -113
  201. package/src/css/combobox.scss +0 -255
  202. package/src/css/content.scss +0 -181
  203. package/src/css/flex.scss +0 -107
  204. package/src/css/floatable.scss +0 -155
  205. package/src/css/form.scss +0 -575
  206. package/src/css/listbox.scss +0 -121
  207. package/src/css/message.scss +0 -74
  208. package/src/css/mixins/badge.mixins.scss +0 -53
  209. package/src/css/mixins/button.mixins.scss +0 -112
  210. package/src/css/mixins/input.mixins.scss +0 -114
  211. package/src/css/mixins/message.mixins.scss +0 -41
  212. package/src/css/mixins/misc.mixins.scss +0 -48
  213. package/src/css/mixins/shadow.mixins.scss +0 -57
  214. package/src/css/reset.scss +0 -392
  215. package/src/css/splitter.scss +0 -89
  216. package/src/css/table.scss +0 -107
  217. package/src/css/tabs.scss +0 -74
  218. package/src/js/color-picker.ts +0 -1653
  219. package/src/js/combobox/constants.combobox.ts +0 -83
  220. package/src/js/combobox/dom.combobox.ts +0 -411
  221. package/src/js/combobox/event.combobox.ts +0 -365
  222. package/src/js/combobox/index.ts +0 -382
  223. package/src/js/combobox/misc.combobox.ts +0 -104
  224. package/src/js/combobox/models.combobox.ts +0 -54
  225. package/src/js/combobox/state.combobox.ts +0 -246
  226. package/src/js/dialog.ts +0 -255
  227. package/src/js/floatable/floatable.embedded.ts +0 -336
  228. package/src/js/floatable/floatable.standalone.ts +0 -6
  229. package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
  230. package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
  231. package/src/js/index.ts +0 -16
  232. package/src/js/internal/attributable.ts +0 -73
  233. package/src/js/internal/draggable.ts +0 -657
  234. package/src/js/internal/listbox/listbox.constants.ts +0 -25
  235. package/src/js/internal/listbox/listbox.data.ts +0 -287
  236. package/src/js/internal/listbox/listbox.dom.ts +0 -446
  237. package/src/js/internal/listbox/listbox.event.ts +0 -129
  238. package/src/js/internal/listbox/listbox.form.ts +0 -125
  239. package/src/js/internal/listbox/listbox.misc.ts +0 -135
  240. package/src/js/internal/listbox/listbox.model.ts +0 -169
  241. package/src/js/internal/listbox/listbox.state.ts +0 -82
  242. package/src/js/internal/misc.ts +0 -27
  243. package/src/js/internal/navigable.ts +0 -317
  244. package/src/js/l10n.ts +0 -192
  245. package/src/js/listbox/constants.listbox.ts +0 -61
  246. package/src/js/listbox/event.listbox.ts +0 -106
  247. package/src/js/listbox/index.ts +0 -364
  248. package/src/js/listbox/misc.listbox.ts +0 -70
  249. package/src/js/listbox/state.listbox.ts +0 -194
  250. package/src/js/menu.ts +0 -348
  251. package/src/js/movable/movable.embedded.ts +0 -318
  252. package/src/js/movable/movable.standalone.ts +0 -2
  253. package/src/js/popover.ts +0 -229
  254. package/src/js/resizable/resizable.embedded.ts +0 -413
  255. package/src/js/resizable/resizable.standalone.ts +0 -5
  256. package/src/js/sortable/sortable.embedded.ts +0 -527
  257. package/src/js/sortable/sortable.standalone.ts +0 -2
  258. package/src/js/splitter.ts +0 -583
  259. package/src/js/tabs.ts +0 -441
  260. package/src/js/toolbar.ts +0 -63
  261. package/src/js/tooltip.ts +0 -367
  262. /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
  263. /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
  264. /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
@@ -0,0 +1,191 @@
1
+ import { COLOR_PICKER_ATTRIBUTE_COPY, COLOR_PICKER_ATTRIBUTE_WELL, COLOR_PICKER_ATTRIBUTE_WELL_KNOB, COLOR_PICKER_TAGNAME, colorPickerLocalizations } from "./color-picker.constants.mjs";
2
+ import { createColorPickerOutput } from "./color-picker.output.mjs";
3
+ import { createElement } from "@oscarpalmer/toretto/create";
4
+ //#region src/js/color-picker/color-picker.dom.ts
5
+ function createColorPickerAnchor(parameters) {
6
+ const { alpha, color, id, inline } = parameters;
7
+ const container = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-anchor`]: "" } });
8
+ const input = createElement("input", {
9
+ attribute: {
10
+ [`${COLOR_PICKER_TAGNAME}-input`]: "",
11
+ autocomplete: "off",
12
+ autocorrect: "off",
13
+ form: "",
14
+ inputmode: "text",
15
+ placeholder: parameters.input.placeholder,
16
+ spellcheck: "false"
17
+ },
18
+ property: {
19
+ id,
20
+ type: "text",
21
+ value: alpha ? color.hexa : color.hex
22
+ }
23
+ });
24
+ let toggle;
25
+ if (!inline) toggle = createElement("button", {
26
+ aria: { label: "" },
27
+ attribute: {
28
+ [`${COLOR_PICKER_TAGNAME}-toggle`]: "",
29
+ popovertarget: `${id}_content`
30
+ },
31
+ property: { type: "button" }
32
+ });
33
+ let copy;
34
+ if (parameters.copy) copy = createColorPickerCopy(parameters, "hex");
35
+ container.append(input);
36
+ if (toggle != null) container.append(toggle);
37
+ if (copy != null) container.append(copy.button);
38
+ return {
39
+ container,
40
+ copy,
41
+ input,
42
+ toggle
43
+ };
44
+ }
45
+ function createColorPickerContent(parameters) {
46
+ const { id, inline } = parameters;
47
+ const element = createElement("div", {
48
+ attribute: {
49
+ [`${COLOR_PICKER_TAGNAME}-content`]: "",
50
+ popover: inline ? void 0 : ""
51
+ },
52
+ property: { id: `${id}_content` }
53
+ });
54
+ const hue = createColorPickerHue(parameters);
55
+ const opacity = createColorPickerOpacity(parameters);
56
+ const well = createColorPickerWell(parameters);
57
+ let output;
58
+ element.append(well.element, hue.container);
59
+ if (opacity != null) element.append(opacity.container);
60
+ if (parameters.output !== "none") {
61
+ output = createColorPickerOutput(parameters, createColorPickerCopy(parameters));
62
+ if (output != null) element.append(output.container);
63
+ }
64
+ return {
65
+ element,
66
+ hue,
67
+ opacity,
68
+ output,
69
+ well
70
+ };
71
+ }
72
+ function createColorPickerCopy(parameters, color) {
73
+ if (!parameters.copy) return;
74
+ return { button: createElement("button", {
75
+ attribute: { [COLOR_PICKER_ATTRIBUTE_COPY]: "" },
76
+ aria: { label: colorPickerLocalizations.defaults.copy },
77
+ data: { color },
78
+ property: {
79
+ textContent: colorPickerLocalizations.defaults.copy,
80
+ type: "button"
81
+ }
82
+ }) };
83
+ }
84
+ function createColorPickerHue(parameters) {
85
+ const { color, id } = parameters;
86
+ const container = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-hue`]: "" } });
87
+ const label = createElement("label", {
88
+ attribute: { [`${COLOR_PICKER_TAGNAME}-hue-label`]: "" },
89
+ property: {
90
+ htmlFor: `${id}_hue`,
91
+ id: `${id}_hue_label`
92
+ }
93
+ });
94
+ const input = createElement("input", {
95
+ aria: { labelledby: `${id}_label ${label.id}` },
96
+ attribute: {
97
+ [`${COLOR_PICKER_TAGNAME}-hue-input`]: "",
98
+ form: "",
99
+ inputmode: "numeric",
100
+ max: 360,
101
+ min: 0
102
+ },
103
+ property: {
104
+ id: `${id}_hue`,
105
+ type: "range",
106
+ value: color.hsl.hue.toString()
107
+ }
108
+ });
109
+ const knob = createElement("span", {
110
+ aria: { hidden: true },
111
+ attribute: { [`${COLOR_PICKER_TAGNAME}-hue-knob`]: "" }
112
+ });
113
+ const track = createElement("div", {
114
+ aria: { hidden: true },
115
+ attribute: { [`${COLOR_PICKER_TAGNAME}-hue-track`]: "" }
116
+ });
117
+ track.append(knob);
118
+ container.append(label, input, track);
119
+ return {
120
+ container,
121
+ input,
122
+ knob,
123
+ label,
124
+ track
125
+ };
126
+ }
127
+ function createColorPickerOpacity(parameters) {
128
+ const { alpha, color, id } = parameters;
129
+ if (!alpha) return;
130
+ const container = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-opacity`]: "" } });
131
+ const label = createElement("label", {
132
+ attribute: { [`${COLOR_PICKER_TAGNAME}-opacity-label`]: "" },
133
+ property: {
134
+ htmlFor: `${id}_opacity`,
135
+ id: `${id}_opacity_label`
136
+ }
137
+ });
138
+ const input = createElement("input", {
139
+ aria: { labelledby: `${id}_label ${label.id}` },
140
+ attribute: {
141
+ [`${COLOR_PICKER_TAGNAME}-opacity-input`]: "",
142
+ form: "",
143
+ max: 100,
144
+ min: 0
145
+ },
146
+ property: {
147
+ id: `${id}_opacity`,
148
+ type: "range",
149
+ value: color.alpha.toString()
150
+ }
151
+ });
152
+ const knob = createElement("span", {
153
+ aria: { hidden: true },
154
+ attribute: { [`${COLOR_PICKER_TAGNAME}-opacity-knob`]: "" }
155
+ });
156
+ const track = createElement("div", {
157
+ aria: { hidden: true },
158
+ attribute: { [`${COLOR_PICKER_TAGNAME}-opacity-track`]: "" }
159
+ });
160
+ track.append(knob);
161
+ container.append(label, input, track);
162
+ return {
163
+ container,
164
+ input,
165
+ label
166
+ };
167
+ }
168
+ function createColorPickerWell(parameters) {
169
+ const { id } = parameters;
170
+ const element = createElement("div", { attribute: { [COLOR_PICKER_ATTRIBUTE_WELL]: "" } });
171
+ const label = createElement("span", { property: {
172
+ id: `${id}_well_label`,
173
+ hidden: true
174
+ } });
175
+ const knob = createElement("span", {
176
+ aria: { labelledby: `${id}_label ${label.id}` },
177
+ attribute: { [COLOR_PICKER_ATTRIBUTE_WELL_KNOB]: "" },
178
+ property: {
179
+ role: "slider",
180
+ tabIndex: 0
181
+ }
182
+ });
183
+ element.append(label, knob);
184
+ return {
185
+ element,
186
+ knob,
187
+ label
188
+ };
189
+ }
190
+ //#endregion
191
+ export { createColorPickerAnchor, createColorPickerContent, createColorPickerHue, createColorPickerOpacity, createColorPickerWell };
@@ -0,0 +1,9 @@
1
+ import { P as OuiColorPickerMovement, z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ //#region src/js/color-picker/color-picker.event.d.ts
3
+ export declare function onColorPickerHue(state: OuiColorPickerState): void;
4
+ export declare function onColorPickerInput(state: OuiColorPickerState): void;
5
+ export declare function onColorPickerOpacity(state: OuiColorPickerState): void;
6
+ export declare function onColorPickerOutputFormat(state: OuiColorPickerState): void;
7
+ export declare function onColorPickerOutputValue(event: Event, state: OuiColorPickerState): void;
8
+ export declare const colorPickerMovement: OuiColorPickerMovement;
9
+ //#endregion
@@ -0,0 +1,2 @@
1
+ import { a as onColorPickerOutputFormat, i as onColorPickerOpacity, n as onColorPickerHue, o as onColorPickerOutputValue, r as onColorPickerInput, t as colorPickerMovement } from "../color-picker.event-Cksj5TvS.mjs";
2
+ export { colorPickerMovement, onColorPickerHue, onColorPickerInput, onColorPickerOpacity, onColorPickerOutputFormat, onColorPickerOutputValue };
@@ -0,0 +1,5 @@
1
+ import { z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ //#region src/js/color-picker/color-picker.form.d.ts
3
+ export declare function updateColorPickerForm(state: OuiColorPickerState, valid: boolean): void;
4
+ export declare function updateColorPickerValidity(state: OuiColorPickerState, valid: boolean): void;
5
+ //#endregion
@@ -0,0 +1,27 @@
1
+ import { getLocalization, localize } from "../l10n/index.mjs";
2
+ import { OuiColorPickerEvent } from "./color-picker.model.mjs";
3
+ import { dispatch } from "@oscarpalmer/toretto/event";
4
+ //#region src/js/color-picker/color-picker.form.ts
5
+ function updateColorPickerForm(state, valid) {
6
+ const { component, form } = state;
7
+ const { color, host, value } = component;
8
+ form.internals.setFormValue(valid ? value.current : "");
9
+ updateColorPickerValidity(state, valid);
10
+ dispatch(host, new OuiColorPickerEvent("oui:change", color.value, valid));
11
+ }
12
+ function updateColorPickerValidity(state, valid) {
13
+ const { component, form } = state;
14
+ const { anchor, host, localizations } = component;
15
+ const { internals } = form;
16
+ if (valid) {
17
+ internals.setValidity({});
18
+ internals.checkValidity();
19
+ return;
20
+ }
21
+ const localization = getLocalization(localizations.global, host, "invalid", localizations.component);
22
+ const message = localization == null ? void 0 : localize(localization, {}, []);
23
+ internals.setValidity({ typeMismatch: true }, message, anchor.input);
24
+ internals.checkValidity();
25
+ }
26
+ //#endregion
27
+ export { updateColorPickerForm, updateColorPickerValidity };
@@ -0,0 +1,2 @@
1
+ import { a as setColorPickerLocalizations, c as setColorPickerValues, i as setColorPickerDisabled, l as updateColorPickerLabels, n as getColorPickerOutput, o as setColorPickerRequired, r as getColorPickerValueType, s as setColorPickerValue, t as getColorPickerId, u as updateColorPickerLocalizations } from "../color-picker.misc-CtsXGrOe.mjs";
2
+ export { getColorPickerId, getColorPickerOutput, getColorPickerValueType, setColorPickerDisabled, setColorPickerLocalizations, setColorPickerRequired, setColorPickerValue, setColorPickerValues, updateColorPickerLabels, updateColorPickerLocalizations };
@@ -0,0 +1,2 @@
1
+ import { c as getColorPickerOutput, d as setColorPickerLocalizations, f as setColorPickerRequired, g as updateColorPickerLocalizations, h as updateColorPickerLabels, l as getColorPickerValueType, m as setColorPickerValues, p as setColorPickerValue, s as getColorPickerId, u as setColorPickerDisabled } from "../color-picker.event-Cksj5TvS.mjs";
2
+ export { getColorPickerId, getColorPickerOutput, getColorPickerValueType, setColorPickerDisabled, setColorPickerLocalizations, setColorPickerRequired, setColorPickerValue, setColorPickerValues, updateColorPickerLabels, updateColorPickerLocalizations };
@@ -0,0 +1,2 @@
1
+ import { A as OuiColorPickerCopy, B as OuiColorPickerStateComponent, C as OuiColorPickerAnchor, D as OuiColorPickerContentOpacity, E as OuiColorPickerContentHue, F as OuiColorPickerMovementParameters, H as OuiColorPickerValueType, I as OuiColorPickerOutputColor, L as OuiColorPickerOutputColorProperty, M as OuiColorPickerEvent, N as OuiColorPickerLocalizations, O as OuiColorPickerContentOutput, P as OuiColorPickerMovement, R as OuiColorPickerOutputType, S as GenericOuiColorPickerElement, T as OuiColorPickerContent, V as OuiColorPickerStateLocalizations, j as OuiColorPickerCreateParameters, k as OuiColorPickerContentWell, w as OuiColorPickerColor, z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ export { GenericOuiColorPickerElement, OuiColorPickerAnchor, OuiColorPickerColor, OuiColorPickerContent, OuiColorPickerContentHue, OuiColorPickerContentOpacity, OuiColorPickerContentOutput, OuiColorPickerContentWell, OuiColorPickerCopy, OuiColorPickerCreateParameters, OuiColorPickerEvent, OuiColorPickerLocalizations, OuiColorPickerMovement, OuiColorPickerMovementParameters, OuiColorPickerOutputColor, OuiColorPickerOutputColorProperty, OuiColorPickerOutputType, OuiColorPickerState, OuiColorPickerStateComponent, OuiColorPickerStateLocalizations, OuiColorPickerValueType };
@@ -0,0 +1,24 @@
1
+ //#region src/js/color-picker/color-picker.model.ts
2
+ var OuiColorPickerEvent = class extends Event {
3
+ valid;
4
+ value;
5
+ constructor(type, color, valid) {
6
+ super(type, {
7
+ bubbles: true,
8
+ cancelable: true
9
+ });
10
+ this.valid = valid;
11
+ this.value = {
12
+ hex: color.hex,
13
+ hexa: color.hexa,
14
+ hsl: color.hsl,
15
+ hsla: color.hsla,
16
+ hwb: color.hwb,
17
+ hwba: color.hwba,
18
+ rgb: color.rgb,
19
+ rgba: color.rgba
20
+ };
21
+ }
22
+ };
23
+ //#endregion
24
+ export { OuiColorPickerEvent };
@@ -0,0 +1,8 @@
1
+ import { A as OuiColorPickerCopy, I as OuiColorPickerOutputColor, O as OuiColorPickerContentOutput, j as OuiColorPickerCreateParameters, z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ //#region src/js/color-picker/color-picker.output.d.ts
3
+ export declare function createColorPickerOutput(parameters: OuiColorPickerCreateParameters, copy: OuiColorPickerCopy | undefined): OuiColorPickerContentOutput | undefined;
4
+ export declare function getColorPickerOutputFormat(state: OuiColorPickerState): OuiColorPickerOutputColor | undefined;
5
+ export declare function updateColorPickerOutputCopyLabel(state: OuiColorPickerState, button: HTMLButtonElement): void;
6
+ export declare function updateColorPickerOutputInputs(state: OuiColorPickerState): void;
7
+ export declare function updateColorPickerOutputLabels(state: OuiColorPickerState): void;
8
+ //#endregion
@@ -0,0 +1,235 @@
1
+ import { getLocalization, localize } from "../l10n/index.mjs";
2
+ import { COLOR_PICKER_ATTRIBUTE_OUTPUT_INPUT, COLOR_PICKER_TAGNAME, colorPickerLocalizations } from "./color-picker.constants.mjs";
3
+ import { setAria } from "@oscarpalmer/toretto/aria";
4
+ import { createElement } from "@oscarpalmer/toretto/create";
5
+ import { round } from "@oscarpalmer/atoms/math";
6
+ //#region src/js/color-picker/color-picker.output.ts
7
+ function createColorPickerOutput(parameters, copy) {
8
+ if (parameters.output === "none") return;
9
+ const container = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-output`]: "" } });
10
+ let inputs;
11
+ let item;
12
+ let items;
13
+ let itemsContainer;
14
+ let toggle;
15
+ let toggleContainer;
16
+ if (parameters.output === "all") {
17
+ [toggleContainer, toggle] = createOutputFormat(parameters, copy?.button);
18
+ [itemsContainer, items, inputs] = createOutputItems(parameters, copy?.button);
19
+ container.append(toggleContainer, itemsContainer);
20
+ } else {
21
+ [item, inputs] = createOutputItem(parameters.output, parameters, copy?.button, true, false);
22
+ items = [item];
23
+ container.append(item);
24
+ }
25
+ return {
26
+ container,
27
+ copy,
28
+ inputs,
29
+ items,
30
+ toggle
31
+ };
32
+ }
33
+ function createOutputFormat(parameters, copy) {
34
+ const container = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-output-format`]: "" } });
35
+ const toggle = createElement("div", { attribute: { [`${COLOR_PICKER_TAGNAME}-output-toggle`]: "" } });
36
+ const id = `${parameters.id}_output_format`;
37
+ const label = createElement("label", {
38
+ attribute: {
39
+ [`${COLOR_PICKER_TAGNAME}-output-label`]: "",
40
+ [`${COLOR_PICKER_TAGNAME}-output-format-label`]: ""
41
+ },
42
+ property: {
43
+ htmlFor: id,
44
+ textContent: colorPickerLocalizations.defaults.output
45
+ }
46
+ });
47
+ const select = createElement("select", {
48
+ attribute: {
49
+ [`${COLOR_PICKER_TAGNAME}-output-format-value`]: "",
50
+ form: ""
51
+ },
52
+ property: { id }
53
+ });
54
+ select.append(...colors.map((color) => createElement("option", { property: {
55
+ textContent: colorPickerLocalizations.defaults[color],
56
+ value: color
57
+ } })));
58
+ toggle.append(label, select);
59
+ container.append(toggle);
60
+ if (copy != null) container.append(copy);
61
+ return [container, select];
62
+ }
63
+ function createOutputInput(color, property, value, parameters) {
64
+ const item = createElement("div", {});
65
+ const id = `${parameters.id}_output_${color}_${property}`;
66
+ const label = createElement("label", {
67
+ attribute: {
68
+ [`${COLOR_PICKER_TAGNAME}-output-label`]: "",
69
+ [`${COLOR_PICKER_ATTRIBUTE_OUTPUT_INPUT}-label`]: ""
70
+ },
71
+ data: { label: property },
72
+ property: {
73
+ htmlFor: id,
74
+ textContent: colorPickerLocalizations.defaults[property]
75
+ }
76
+ });
77
+ const input = createElement("input", {
78
+ attribute: {
79
+ [COLOR_PICKER_ATTRIBUTE_OUTPUT_INPUT]: "",
80
+ [`${COLOR_PICKER_TAGNAME}-output-${property}`]: "",
81
+ autocomplete: "off",
82
+ autocorrect: "off",
83
+ form: "",
84
+ inputmode: "text",
85
+ spellcheck: "false"
86
+ },
87
+ data: {
88
+ color,
89
+ property
90
+ },
91
+ property: {
92
+ id,
93
+ max: max[property],
94
+ min: "0",
95
+ type: "number",
96
+ valueAsNumber: value[property]
97
+ }
98
+ });
99
+ item.append(label, input);
100
+ return [item, input];
101
+ }
102
+ function createOutputItem(color, parameters, copy, single, hidden) {
103
+ const item = createElement("div", {
104
+ aria: { label: colorPickerLocalizations.defaults[color] },
105
+ data: { label: color },
106
+ attribute: {
107
+ [`${COLOR_PICKER_TAGNAME}-output-item`]: "",
108
+ [`${COLOR_PICKER_TAGNAME}-output-${color}`]: ""
109
+ },
110
+ property: { hidden }
111
+ });
112
+ const value = parameters.color[color];
113
+ const inputs = [];
114
+ for (const property of properties[color]) {
115
+ const [container, input] = createOutputInput(color, property, value, parameters);
116
+ inputs.push(input);
117
+ item.append(container);
118
+ }
119
+ if (single && copy != null) item.append(copy);
120
+ return [item, inputs];
121
+ }
122
+ function createOutputItems(parameters, copy) {
123
+ const container = createElement("div", {});
124
+ const inputs = [];
125
+ const items = [];
126
+ for (let index = 0; index < colors.length; index += 1) {
127
+ const color = colors[index];
128
+ const [item, itemInputs] = createOutputItem(color, parameters, copy, false, index > 0);
129
+ inputs.push(...itemInputs);
130
+ items.push(item);
131
+ }
132
+ container.append(...items);
133
+ return [
134
+ container,
135
+ items,
136
+ inputs
137
+ ];
138
+ }
139
+ function getColorPickerOutputFormat(state) {
140
+ const { component } = state;
141
+ if (component.output === "none") return;
142
+ let color;
143
+ if (component.output === "all") color = component.content.output?.toggle?.value;
144
+ else color = component.output;
145
+ return color;
146
+ }
147
+ function updateColorPickerOutputCopyLabel(state, button) {
148
+ const { host, localizations } = state.component;
149
+ const prefix = localize(getLocalization(localizations.global, host, "copy", localizations.component), {}, []);
150
+ const color = getColorPickerOutputFormat(state);
151
+ let content;
152
+ if (color == null) content = prefix;
153
+ else content = `${prefix} ${localize(getLocalization(localizations.global, host, color, localizations.component), {}, [])}`;
154
+ setAria(button, "label", content);
155
+ button.textContent = prefix;
156
+ }
157
+ function updateColorPickerOutputInputs(state) {
158
+ const { component } = state;
159
+ const { content } = component;
160
+ if (content.output?.inputs == null) return;
161
+ const inputs = content.output.inputs;
162
+ const { length } = inputs;
163
+ for (let index = 0; index < length; index += 1) {
164
+ const input = inputs[index];
165
+ const color = input.dataset.color;
166
+ const property = input.dataset.property;
167
+ if (color != null && property != null) input.valueAsNumber = color in component.color.value && property in component.color.value[color] ? round(component.color.value[color][property]) : 0;
168
+ }
169
+ }
170
+ function updateColorPickerOutputLabels(state) {
171
+ const { content, host, localizations } = state.component;
172
+ if (content.output == null) return;
173
+ if (content.output.copy?.button != null) updateColorPickerOutputCopyLabel(state, content.output.copy.button);
174
+ for (let labelsIndex = 0; labelsIndex < labelsLength; labelsIndex += 1) {
175
+ const label = labels[labelsIndex];
176
+ const elements = [...content.element.querySelectorAll(`[data-label="${label}"]`)];
177
+ const elementsLength = elements.length;
178
+ if (elementsLength === 0) return;
179
+ const textContent = localize(getLocalization(localizations.global, host, label, localizations.component), {}, []);
180
+ for (let elementsIndex = 0; elementsIndex < elementsLength; elementsIndex += 1) {
181
+ const element = elements[elementsIndex];
182
+ if (element instanceof HTMLLabelElement) element.textContent = textContent;
183
+ else setAria(element, "label", textContent);
184
+ }
185
+ }
186
+ }
187
+ const colors = [
188
+ "hsl",
189
+ "hwb",
190
+ "rgb"
191
+ ];
192
+ const labels = [
193
+ "blackness",
194
+ "blue",
195
+ "green",
196
+ "hsl",
197
+ "hue",
198
+ "hwb",
199
+ "lightness",
200
+ "output",
201
+ "red",
202
+ "rgb",
203
+ "saturation",
204
+ "whiteness"
205
+ ];
206
+ const labelsLength = labels.length;
207
+ const max = {
208
+ blackness: "100",
209
+ blue: "255",
210
+ green: "255",
211
+ hue: "360",
212
+ lightness: "100",
213
+ red: "255",
214
+ saturation: "100",
215
+ whiteness: "100"
216
+ };
217
+ const properties = {
218
+ hsl: [
219
+ "hue",
220
+ "saturation",
221
+ "lightness"
222
+ ],
223
+ hwb: [
224
+ "hue",
225
+ "whiteness",
226
+ "blackness"
227
+ ],
228
+ rgb: [
229
+ "red",
230
+ "green",
231
+ "blue"
232
+ ]
233
+ };
234
+ //#endregion
235
+ export { createColorPickerOutput, getColorPickerOutputFormat, updateColorPickerOutputCopyLabel, updateColorPickerOutputInputs, updateColorPickerOutputLabels };
@@ -0,0 +1,8 @@
1
+ import { B as OuiColorPickerStateComponent, S as GenericOuiColorPickerElement, z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ //#region src/js/color-picker/color-picker.state.d.ts
3
+ export declare function attachColorPicker(state: OuiColorPickerState): void;
4
+ export declare function detachColorPicker(state: OuiColorPickerState): void;
5
+ export declare function initializeColorPicker(colorPicker: GenericOuiColorPickerElement): void;
6
+ export declare function initializeColorPickerComponent(element: GenericOuiColorPickerElement, state: OuiColorPickerState): OuiColorPickerStateComponent;
7
+ export declare const colorPickers: Set<OuiColorPickerState>;
8
+ //#endregion
@@ -0,0 +1,2 @@
1
+ import { _ as attachColorPicker, b as initializeColorPicker, v as colorPickers, x as initializeColorPickerComponent, y as detachColorPicker } from "../color-picker.event-Cksj5TvS.mjs";
2
+ export { attachColorPicker, colorPickers, detachColorPicker, initializeColorPicker, initializeColorPickerComponent };
@@ -1,12 +1,16 @@
1
- import { Color, HSLAColor, HSLColor, HWBAColor, HWBColor, RGBAColor, RGBColor } from "@oscarpalmer/atoms/color";
2
- //#region src/js/color-picker.d.ts
1
+ import { M as OuiColorPickerEvent, N as OuiColorPickerLocalizations, b as COLOR_PICKER_TAGNAME, y as COLOR_PICKER_SYMBOL, z as OuiColorPickerState } from "../color-picker.constants-D1mxw_Le.mjs";
2
+ import { a as setColorPickerLocalizations } from "../color-picker.misc-CtsXGrOe.mjs";
3
+ import { HSLAColor, HSLColor, HWBAColor, HWBColor, RGBAColor, RGBColor } from "@oscarpalmer/atoms/color";
4
+ //#region src/js/color-picker/index.d.ts
3
5
  declare global {
4
6
  interface HTMLElementTagNameMap {
5
- [TAGNAME]: OuiColorPickerElement;
7
+ [COLOR_PICKER_TAGNAME]: OuiColorPickerElement;
6
8
  }
7
9
  }
8
- declare class OuiColorPickerElement extends HTMLElement {
9
- #private;
10
+ export interface OuiColorPickerElement {
11
+ [COLOR_PICKER_SYMBOL]: OuiColorPickerState;
12
+ }
13
+ export declare class OuiColorPickerElement extends HTMLElement {
10
14
  static formAssociated: boolean;
11
15
  static observedAttributes: string[];
12
16
  /**
@@ -172,42 +176,5 @@ declare class OuiColorPickerElement extends HTMLElement {
172
176
  */
173
177
  setLocalizations(localizations: Record<string, Partial<OuiColorPickerLocalizations>>): void;
174
178
  }
175
- declare class OuiColorPickerEvent extends Event {
176
- readonly valid: boolean;
177
- readonly value: OuiColorPickerEventValue;
178
- constructor(type: 'oui:change' | 'oui:input', color: Color, valid: boolean);
179
- }
180
- type OuiColorPickerEventValue = {
181
- hex: string;
182
- hexa: string;
183
- hsl: HSLColor;
184
- hsla: HSLAColor;
185
- hwb: HWBColor;
186
- hwba: HWBAColor;
187
- rgb: RGBColor;
188
- rgba: RGBAColor;
189
- };
190
- type OuiColorPickerLocalizations = {
191
- hue: string;
192
- invalid: string;
193
- lightnessSaturationLabel: string;
194
- lightnessSaturationValue: string | ((lightness: number, saturation: number) => string);
195
- opacity: string;
196
- toggle: string;
197
- };
198
- /**
199
- * Set localizations for a specific language
200
- *
201
- * @param language Language code
202
- * @param localizations Localizations for language
203
- */
204
- declare function setColorPickerLocalizations(language: string, localizations: Partial<OuiColorPickerLocalizations>): void;
205
- /**
206
- * Set localizations for one or more languages
207
- *
208
- * @param localizations Localizations for one or more languages
209
- */
210
- declare function setColorPickerLocalizations(localizations: Record<string, Partial<OuiColorPickerLocalizations>>): void;
211
- declare const TAGNAME = "oui-color-picker";
212
179
  //#endregion
213
- export { OuiColorPickerElement, OuiColorPickerEvent, setColorPickerLocalizations };
180
+ export { OuiColorPickerEvent, setColorPickerLocalizations };