@warp-ds/elements 2.0.0-next.3 → 2.0.0-next.5

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 (45) hide show
  1. package/dist/index.js +345 -377
  2. package/dist/index.js.map +4 -4
  3. package/dist/packages/affix/index.d.ts +13 -6
  4. package/dist/packages/affix/index.js +32 -65
  5. package/dist/packages/affix/index.js.map +4 -4
  6. package/dist/packages/alert/index.js +10 -60
  7. package/dist/packages/alert/index.js.map +3 -3
  8. package/dist/packages/attention/index.js +39 -80
  9. package/dist/packages/attention/index.js.map +4 -4
  10. package/dist/packages/badge/index.js +26 -72
  11. package/dist/packages/badge/index.js.map +4 -4
  12. package/dist/packages/box/index.d.ts +1 -1
  13. package/dist/packages/box/index.js +25 -64
  14. package/dist/packages/box/index.js.map +4 -4
  15. package/dist/packages/breadcrumbs/index.js +8 -52
  16. package/dist/packages/breadcrumbs/index.js.map +3 -3
  17. package/dist/packages/button/index.d.ts +6 -0
  18. package/dist/packages/button/index.js +66 -103
  19. package/dist/packages/button/index.js.map +3 -3
  20. package/dist/packages/card/index.d.ts +5 -5
  21. package/dist/packages/card/index.js +1461 -91
  22. package/dist/packages/card/index.js.map +4 -4
  23. package/dist/packages/card/locales/da/messages.d.mts +1 -0
  24. package/dist/packages/card/locales/en/messages.d.mts +1 -0
  25. package/dist/packages/card/locales/fi/messages.d.mts +1 -0
  26. package/dist/packages/card/locales/nb/messages.d.mts +1 -0
  27. package/dist/packages/expandable/index.d.ts +1 -6
  28. package/dist/packages/expandable/index.js +70 -85
  29. package/dist/packages/expandable/index.js.map +4 -4
  30. package/dist/packages/modal/index.js +7 -51
  31. package/dist/packages/modal/index.js.map +3 -3
  32. package/dist/packages/pill/index.js +16 -64
  33. package/dist/packages/pill/index.js.map +3 -3
  34. package/dist/packages/select/index.d.ts +10 -0
  35. package/dist/packages/select/index.js +42 -72
  36. package/dist/packages/select/index.js.map +3 -3
  37. package/dist/packages/textfield/index.d.ts +9 -5
  38. package/dist/packages/textfield/index.js +49 -76
  39. package/dist/packages/textfield/index.js.map +4 -4
  40. package/dist/packages/toast/index.js +55 -90
  41. package/dist/packages/toast/index.js.map +4 -4
  42. package/dist/packages/toast/toast.d.ts +1 -2
  43. package/dist/packages/utils/index.d.ts +1 -1
  44. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  45. package/package.json +4 -4
@@ -31,12 +31,22 @@ export class WarpSelect extends WarpSelect_base {
31
31
  type: BooleanConstructor;
32
32
  reflect: boolean;
33
33
  };
34
+ disabled: {
35
+ type: BooleanConstructor;
36
+ reflect: boolean;
37
+ };
38
+ readOnly: {
39
+ type: BooleanConstructor;
40
+ relfect: boolean;
41
+ };
34
42
  _options: {
35
43
  state: boolean;
36
44
  };
37
45
  };
38
46
  static styles: any[];
39
47
  _options: any;
48
+ firstUpdated(): void;
49
+ handleKeyDown(event: any): void;
40
50
  render(): import("lit").TemplateResult<1>;
41
51
  #private;
42
52
  }
@@ -1391,41 +1391,7 @@ function setupI18n(params = {}) {
1391
1391
  }
1392
1392
  var i18n = setupI18n();
1393
1393
 
1394
- // node_modules/.pnpm/@warp-ds+css@2.0.0-next.4_@warp-ds+uno@2.0.0_unocss@0.61.3_postcss@8.4.39_rollup@4.18.1_vite@_fn7nbuinwdlc4yeboswpxt5lie/node_modules/@warp-ds/css/component-classes/index.js
1395
- var box = {
1396
- box: "group block relative break-words last-child:mb-0 p-16 rounded-8",
1397
- // Relative here enables w-clickable
1398
- bleed: "-mx-16 sm:mx-0 rounded-l-0 rounded-r-0 sm:rounded-8",
1399
- // We target L and R to override the default rounded-8
1400
- info: "s-bg-info-subtle",
1401
- neutral: "s-surface-sunken",
1402
- bordered: "border-2 s-border s-bg"
1403
- };
1404
- var buttonReset = "focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block";
1405
- var expandable = {
1406
- expandable: "will-change-height",
1407
- expandableTitle: "font-bold s-text",
1408
- expandableBox: "s-surface-sunken hover:s-bg-hover active:s-bg-active py-0 px-0 " + box.box,
1409
- expandableInfo: "s-bg-info-subtle! hover:s-bg-info-subtle-hover!",
1410
- expandableBleed: box.bleed,
1411
- chevron: "inline-block align-middle s-icon",
1412
- chevronNonBox: "ml-8",
1413
- chevronBox: "",
1414
- chevronTransform: "transform transition-transform transform-gpu ease-in-out",
1415
- chevronExpand: "-rotate-180",
1416
- chevronCollapse: "rotate-180",
1417
- elementsTransformChevronDownPart: "part-[w-icon-chevron-down-16-part]:transform part-[w-icon-chevron-down-16-part]:transition-transform part-[w-icon-chevron-down-16-part]:transform-gpu part-[w-icon-chevron-down-16-part]:ease-in-out",
1418
- elementsChevronDownExpandPart: "part-[w-icon-chevron-down-16-part]:-rotate-180",
1419
- elementsTransformChevronUpPart: "part-[w-icon-chevron-up-16-part]:transform part-[w-icon-chevron-up-16-part]:transition-transform part-[w-icon-chevron-up-16-part]:transform-gpu part-[w-icon-chevron-up-16-part]:ease-in-out",
1420
- elementsChevronUpCollapsePart: "part-[w-icon-chevron-up-16-part]:rotate-180",
1421
- expansion: "overflow-hidden",
1422
- expansionNotExpanded: "h-0 invisible",
1423
- button: buttonReset + " hover:underline focus-visible:underline",
1424
- buttonBox: "w-full text-left relative inline-flex items-center justify-between " + box.box,
1425
- paddingTop: "pt-0",
1426
- title: "flex w-full justify-between items-center",
1427
- titleType: "h4"
1428
- };
1394
+ // node_modules/.pnpm/@warp-ds+css@2.0.0_@warp-ds+uno@2.0.0_unocss@0.62.0_postcss@8.4.41_rollup@4.20.0_vite@5.3.3_@_vyiy5vwpqfzwy5hpmfkwp3zmle/node_modules/@warp-ds/css/component-classes/index.js
1429
1395
  var buttonDefaultStyling = "font-bold focusable justify-center transition-colors ease-in-out";
1430
1396
  var buttonColors = {
1431
1397
  primary: "s-text-inverted bg-[--w-color-button-primary-background] hover:bg-[--w-color-button-primary-background-hover] active:bg-[--w-color-button-primary-background-active]",
@@ -1543,7 +1509,7 @@ var button = {
1543
1509
  };
1544
1510
  var modal = {
1545
1511
  backdrop: "fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px] bg-[--w-black/25]",
1546
- modal: "pb-safe-[32] shadow-m max-h-[--w-modal-max-height] min-h-[--w-modal-min-height] w-[--w-modal-width] h-[--w-modal-height] relative transition-300 ease-in-out backface-hidden will-change-height rounded-8 mx-0 sm:mx-16 bg-[--w-s-color-surface-elevated-100] flex flex-col overflow-hidden outline-none space-y-16 pt-8 sm:pt-32 sm:pb-32 rounded-b-0 sm:rounded-b-8",
1512
+ base: "pb-safe-[32] shadow-m max-h-[--w-modal-max-height] min-h-[--w-modal-min-height] w-[--w-modal-width] h-[--w-modal-height] relative transition-300 ease-in-out backface-hidden will-change-height rounded-8 mx-0 sm:mx-16 bg-[--w-s-color-surface-elevated-100] flex flex-col overflow-hidden outline-none space-y-16 pt-8 sm:pt-32 sm:pb-32 rounded-b-0 sm:rounded-b-8",
1547
1513
  content: "block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",
1548
1514
  footer: "flex justify-end shrink-0 px-16 sm:px-32",
1549
1515
  transitionTitle: "transition-all duration-300",
@@ -1558,33 +1524,34 @@ var modal = {
1558
1524
  titleButtonIconRotated: "transform rotate-90"
1559
1525
  };
1560
1526
  var select = {
1561
- default: "block text-m mb-0 leading-m s-text s-bg s-border hover:s-border-hover active:s-border-active rounded-4 py-12 px-8 block border-1 w-full focusable focus:[--w-outline-offset:-2px] appearance-none pr-32 cursor-pointer caret-current",
1562
- disabled: "s-bg-disabled-subtle s-border-disabled hover:s-border-disabled! active:s-border-disabled! s-text-disabled pointer-events-none",
1563
- invalid: "s-border-negative hover:s-border-negative-hover! outline-[--w-s-color-border-negative]!",
1564
- readOnly: "pl-0 bg-transparent border-0 pointer-events-none before:hidden",
1527
+ base: "block text-m mb-0 py-12 pr-32 rounded-4 w-full focusable focus:[--w-outline-offset:-2px] appearance-none cursor-pointer caret-current",
1528
+ default: "s-text s-bg pl-8 border-1 s-border hover:s-border-hover active:s-border-active",
1529
+ disabled: "s-text-disabled s-bg-disabled-subtle pl-8 border-1 s-border-disabled hover:s-border-disabled active:s-border-disabled pointer-events-none",
1530
+ invalid: "s-text s-bg pl-8 border-1 s-border-negative hover:s-border-negative-hover active:s-border-active outline-[--w-s-color-border-negative]!",
1531
+ readOnly: "s-text bg-transparent pl-0 border-0 pointer-events-none before:hidden",
1565
1532
  wrapper: "relative",
1566
1533
  selectWrapper: `relative before:block before:absolute before:right-0 before:bottom-0 before:w-32 before:h-full before:pointer-events-none `,
1567
- chevron: "absolute top-[30%] block right-0 bottom-0 w-32 h-full s-icon pointer-events-none cursor-pointer",
1534
+ chevron: "block absolute top-[30%] right-0 bottom-0 w-32 h-full s-icon pointer-events-none cursor-pointer",
1568
1535
  chevronDisabled: "opacity-25"
1569
1536
  };
1570
1537
  var label = {
1571
- label: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
1538
+ base: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
1572
1539
  optional: "pl-8 font-normal text-s s-text-subtle"
1573
1540
  };
1574
1541
  var helpText = {
1575
- helpText: "text-xs mt-4 block",
1576
- helpTextColor: "s-text-subtle",
1577
- helpTextColorInvalid: "s-text-negative"
1542
+ base: "text-xs mt-4 block",
1543
+ color: "s-text-subtle",
1544
+ colorInvalid: "s-text-negative"
1578
1545
  };
1579
- var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
1546
+ var prefixSuffixWrapper = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
1580
1547
  var suffix = {
1581
- wrapper: prefixSuffixWrapperBase + "right-0",
1548
+ wrapper: prefixSuffixWrapper + "right-0",
1582
1549
  wrapperWithLabel: "w-max pr-12",
1583
1550
  wrapperWithIcon: "w-40",
1584
1551
  label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
1585
1552
  };
1586
1553
  var prefix = {
1587
- wrapper: prefixSuffixWrapperBase + "left-0",
1554
+ wrapper: prefixSuffixWrapper + "left-0",
1588
1555
  wrapperWithLabel: "w-max pl-12",
1589
1556
  wrapperWithIcon: "w-40",
1590
1557
  label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
@@ -1641,15 +1608,9 @@ var deadToggle = {
1641
1608
  wrapper: `${toggle.wrapper} h-20 w-20 pointer-events-none`,
1642
1609
  input: `${toggle.input} hidden`,
1643
1610
  inputVue: "hidden",
1611
+ labelVue: "-mt-2",
1644
1612
  labelRadio: `${toggle.label} ${toggle.labelBefore} ${toggle.radio}`,
1645
- labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`,
1646
- labelVue: "-mt-2"
1647
- };
1648
- var clickable = {
1649
- toggle: "absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",
1650
- label: `px-12 ${label.label} py-8! cursor-pointer focusable focusable-inset`,
1651
- buttonOrLink: "bg-transparent focusable",
1652
- buttonOrLinkStretch: "inset-0 absolute"
1613
+ labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`
1653
1614
  };
1654
1615
  var attention = {
1655
1616
  base: "border-2 relative flex items-start",
@@ -1848,11 +1809,19 @@ var WarpSelect = class extends kebabCaseAttributes(WarpElement) {
1848
1809
  activateI18n(messages2, messages4, messages3, messages);
1849
1810
  this._options = this.innerHTML;
1850
1811
  }
1812
+ firstUpdated() {
1813
+ this.autoFocus && this.shadowRoot.querySelector("select").focus();
1814
+ }
1815
+ handleKeyDown(event) {
1816
+ if (this.readOnly && (event.key === " " || event.key === "ArrowDown" || event.key === "ArrowUp")) {
1817
+ event.preventDefault();
1818
+ }
1819
+ }
1851
1820
  render() {
1852
1821
  return html2`<div class="${select.wrapper}">
1853
1822
  ${when(
1854
1823
  this.label,
1855
- () => html2`<label class="${label.label}" for="${__privateGet(this, _WarpSelect_instances, id_get)}">
1824
+ () => html2`<label class="${label.base}" for="${__privateGet(this, _WarpSelect_instances, id_get)}">
1856
1825
  ${this.label}
1857
1826
  ${when(
1858
1827
  this.optional,
@@ -1870,10 +1839,11 @@ var WarpSelect = class extends kebabCaseAttributes(WarpElement) {
1870
1839
  <select
1871
1840
  class="${__privateGet(this, _WarpSelect_instances, classes_get)}"
1872
1841
  id="${__privateGet(this, _WarpSelect_instances, id_get)}"
1873
- ?autofocus=${this.autoFocus}
1842
+ ?disabled=${this.disabled}
1874
1843
  aria-describedby="${ifDefined(__privateGet(this, _WarpSelect_instances, helpId_get))}"
1875
1844
  aria-invalid="${ifDefined(this.invalid)}"
1876
- aria-errormessage="${ifDefined(this.invalid && __privateGet(this, _WarpSelect_instances, helpId_get))}">
1845
+ aria-errormessage="${ifDefined(this.invalid && __privateGet(this, _WarpSelect_instances, helpId_get))}"
1846
+ @keydown=${this.handleKeyDown}>
1877
1847
  ${unsafeHTML(this._options)}
1878
1848
  </select>
1879
1849
  <div class="${__privateGet(this, _WarpSelect_instances, chevronClasses_get)}">
@@ -1886,23 +1856,19 @@ var WarpSelect = class extends kebabCaseAttributes(WarpElement) {
1886
1856
  };
1887
1857
  _WarpSelect_instances = new WeakSet();
1888
1858
  classes_get = function() {
1889
- return r({
1890
- [select.default]: true,
1891
- [select.invalid]: this.invalid
1892
- });
1859
+ return r([
1860
+ select.base,
1861
+ !this.invalid && !this.disabled && !this.readOnly && select.default,
1862
+ this.invalid && select.invalid,
1863
+ this.disabled && select.disabled,
1864
+ this.readOnly && select.readOnly
1865
+ ]);
1893
1866
  };
1894
1867
  helpTextClasses_get = function() {
1895
- return r({
1896
- [helpText.helpText]: true,
1897
- [helpText.helpTextColor]: !this.invalid,
1898
- [helpText.helpTextColorInvalid]: this.invalid
1899
- });
1868
+ return r([helpText.base, this.invalid ? helpText.colorInvalid : helpText.color]);
1900
1869
  };
1901
1870
  chevronClasses_get = function() {
1902
- return r({
1903
- [select.chevron]: true,
1904
- [select.chevronDisabled]: this.disabled
1905
- });
1871
+ return r([select.chevron, this.disabled && select.chevronDisabled]);
1906
1872
  };
1907
1873
  id_get = function() {
1908
1874
  return "select_id";
@@ -1923,6 +1889,10 @@ __publicField(WarpSelect, "properties", {
1923
1889
  label: { type: String, reflect: true },
1924
1890
  // Whether to show optional text
1925
1891
  optional: { type: Boolean, reflect: true },
1892
+ // Renders the field in a disabled state.
1893
+ disabled: { type: Boolean, reflect: true },
1894
+ // Renders the field in a readonly state.
1895
+ readOnly: { type: Boolean, relfect: true },
1926
1896
  _options: { state: true }
1927
1897
  });
1928
1898
  __publicField(WarpSelect, "styles", [WarpElement.styles]);