@elliemae/ds-pills-v2 3.60.0-next.1 → 3.60.0-next.3

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 (142) hide show
  1. package/dist/cjs/components/Pill.js +3 -3
  2. package/dist/cjs/components/Pill.js.map +2 -2
  3. package/dist/cjs/components/index.js +0 -2
  4. package/dist/cjs/components/index.js.map +2 -2
  5. package/dist/cjs/components/styled.js +29 -10
  6. package/dist/cjs/components/styled.js.map +3 -3
  7. package/dist/cjs/components/types/DropdownPill.js +2 -2
  8. package/dist/cjs/components/types/DropdownPill.js.map +2 -2
  9. package/dist/cjs/components/types/InputPill.js +2 -2
  10. package/dist/cjs/components/types/InputPill.js.map +2 -2
  11. package/dist/cjs/components/types/LabelOnlyPill.js +8 -4
  12. package/dist/cjs/components/types/LabelOnlyPill.js.map +2 -2
  13. package/dist/cjs/components/types/LabelPill.js +8 -4
  14. package/dist/cjs/components/types/LabelPill.js.map +2 -2
  15. package/dist/cjs/components/types/MenuButtonPill.js +60 -57
  16. package/dist/cjs/components/types/MenuButtonPill.js.map +3 -3
  17. package/dist/cjs/components/types/ReadOnlyPill.js +31 -29
  18. package/dist/cjs/components/types/ReadOnlyPill.js.map +2 -2
  19. package/dist/cjs/components/types/RemovablePill.js +78 -76
  20. package/dist/cjs/components/types/RemovablePill.js.map +2 -2
  21. package/dist/cjs/components/types/ValuePill.js +9 -5
  22. package/dist/cjs/components/types/ValuePill.js.map +2 -2
  23. package/dist/cjs/constants/index.js +51 -0
  24. package/dist/cjs/constants/index.js.map +7 -0
  25. package/dist/cjs/index.js +14 -9
  26. package/dist/cjs/index.js.map +2 -2
  27. package/dist/cjs/{components/PillButton.js → parts/DSPillButton/DSPillButton.js} +15 -16
  28. package/dist/cjs/parts/DSPillButton/DSPillButton.js.map +7 -0
  29. package/dist/cjs/parts/DSPillButton/config/usePillButton.js +53 -0
  30. package/dist/cjs/parts/DSPillButton/config/usePillButton.js.map +7 -0
  31. package/dist/cjs/parts/DSPillButton/config/useValidateProps.js +40 -0
  32. package/dist/cjs/parts/DSPillButton/config/useValidateProps.js.map +7 -0
  33. package/dist/cjs/parts/DSPillButton/constants/index.js +48 -0
  34. package/dist/cjs/parts/DSPillButton/constants/index.js.map +7 -0
  35. package/dist/cjs/parts/DSPillButton/index.js +40 -0
  36. package/dist/cjs/parts/DSPillButton/index.js.map +7 -0
  37. package/dist/cjs/parts/DSPillButton/react-desc-prop-types.js +58 -0
  38. package/dist/cjs/parts/DSPillButton/react-desc-prop-types.js.map +7 -0
  39. package/dist/cjs/parts/DSPillGroup/DSPillGroup.js +69 -0
  40. package/dist/cjs/parts/DSPillGroup/DSPillGroup.js.map +7 -0
  41. package/dist/cjs/{DSPillDefinitions.js → parts/DSPillGroup/PillGroupCTX.js} +10 -10
  42. package/dist/cjs/parts/DSPillGroup/PillGroupCTX.js.map +7 -0
  43. package/dist/cjs/{components/PillGroup.js → parts/DSPillGroup/config/usePillGroup.js} +35 -37
  44. package/dist/cjs/parts/DSPillGroup/config/usePillGroup.js.map +7 -0
  45. package/dist/cjs/parts/DSPillGroup/config/useValidateProps.js +40 -0
  46. package/dist/cjs/parts/DSPillGroup/config/useValidateProps.js.map +7 -0
  47. package/dist/cjs/parts/DSPillGroup/constants/index.js +45 -0
  48. package/dist/cjs/parts/DSPillGroup/constants/index.js.map +7 -0
  49. package/dist/cjs/parts/DSPillGroup/index.js +42 -0
  50. package/dist/cjs/parts/DSPillGroup/index.js.map +7 -0
  51. package/dist/cjs/parts/DSPillGroup/react-desc-prop-types.js +52 -0
  52. package/dist/cjs/parts/DSPillGroup/react-desc-prop-types.js.map +7 -0
  53. package/dist/cjs/react-desc-prop-types.js +2 -35
  54. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  55. package/dist/cjs/typescript-testing/typescript-pills-v2-valid.js.map +2 -2
  56. package/dist/esm/components/Pill.js +1 -1
  57. package/dist/esm/components/Pill.js.map +1 -1
  58. package/dist/esm/components/index.js +0 -2
  59. package/dist/esm/components/index.js.map +2 -2
  60. package/dist/esm/components/styled.js +29 -10
  61. package/dist/esm/components/styled.js.map +2 -2
  62. package/dist/esm/components/types/DropdownPill.js +1 -1
  63. package/dist/esm/components/types/DropdownPill.js.map +1 -1
  64. package/dist/esm/components/types/InputPill.js +1 -1
  65. package/dist/esm/components/types/InputPill.js.map +1 -1
  66. package/dist/esm/components/types/LabelOnlyPill.js +8 -4
  67. package/dist/esm/components/types/LabelOnlyPill.js.map +2 -2
  68. package/dist/esm/components/types/LabelPill.js +8 -4
  69. package/dist/esm/components/types/LabelPill.js.map +2 -2
  70. package/dist/esm/components/types/MenuButtonPill.js +60 -57
  71. package/dist/esm/components/types/MenuButtonPill.js.map +2 -2
  72. package/dist/esm/components/types/ReadOnlyPill.js +31 -29
  73. package/dist/esm/components/types/ReadOnlyPill.js.map +2 -2
  74. package/dist/esm/components/types/RemovablePill.js +78 -76
  75. package/dist/esm/components/types/RemovablePill.js.map +2 -2
  76. package/dist/esm/components/types/ValuePill.js +9 -5
  77. package/dist/esm/components/types/ValuePill.js.map +2 -2
  78. package/dist/esm/constants/index.js +21 -0
  79. package/dist/esm/constants/index.js.map +7 -0
  80. package/dist/esm/index.js +8 -10
  81. package/dist/esm/index.js.map +2 -2
  82. package/dist/esm/{components/PillButton.js → parts/DSPillButton/DSPillButton.js} +12 -13
  83. package/dist/esm/parts/DSPillButton/DSPillButton.js.map +7 -0
  84. package/dist/esm/parts/DSPillButton/config/usePillButton.js +23 -0
  85. package/dist/esm/parts/DSPillButton/config/usePillButton.js.map +7 -0
  86. package/dist/esm/parts/DSPillButton/config/useValidateProps.js +10 -0
  87. package/dist/esm/parts/DSPillButton/config/useValidateProps.js.map +7 -0
  88. package/dist/esm/parts/DSPillButton/constants/index.js +18 -0
  89. package/dist/esm/parts/DSPillButton/constants/index.js.map +7 -0
  90. package/dist/esm/parts/DSPillButton/index.js +10 -0
  91. package/dist/esm/parts/DSPillButton/index.js.map +7 -0
  92. package/dist/esm/parts/DSPillButton/react-desc-prop-types.js +33 -0
  93. package/dist/esm/parts/DSPillButton/react-desc-prop-types.js.map +7 -0
  94. package/dist/esm/parts/DSPillGroup/DSPillGroup.js +39 -0
  95. package/dist/esm/parts/DSPillGroup/DSPillGroup.js.map +7 -0
  96. package/dist/esm/parts/DSPillGroup/PillGroupCTX.js +10 -0
  97. package/dist/esm/parts/DSPillGroup/PillGroupCTX.js.map +7 -0
  98. package/dist/esm/parts/DSPillGroup/config/usePillGroup.js +74 -0
  99. package/dist/esm/parts/DSPillGroup/config/usePillGroup.js.map +7 -0
  100. package/dist/esm/parts/DSPillGroup/config/useValidateProps.js +10 -0
  101. package/dist/esm/parts/DSPillGroup/config/useValidateProps.js.map +7 -0
  102. package/dist/esm/parts/DSPillGroup/constants/index.js +15 -0
  103. package/dist/esm/parts/DSPillGroup/constants/index.js.map +7 -0
  104. package/dist/esm/parts/DSPillGroup/index.js +12 -0
  105. package/dist/esm/parts/DSPillGroup/index.js.map +7 -0
  106. package/dist/esm/parts/DSPillGroup/react-desc-prop-types.js +27 -0
  107. package/dist/esm/parts/DSPillGroup/react-desc-prop-types.js.map +7 -0
  108. package/dist/esm/react-desc-prop-types.js +8 -36
  109. package/dist/esm/react-desc-prop-types.js.map +2 -2
  110. package/dist/esm/typescript-testing/typescript-pills-v2-valid.js.map +2 -2
  111. package/dist/types/components/index.d.ts +0 -2
  112. package/dist/types/constants/index.d.ts +14 -0
  113. package/dist/types/index.d.ts +4 -2
  114. package/dist/types/{components/PillButton.d.ts → parts/DSPillButton/DSPillButton.d.ts} +3 -3
  115. package/dist/types/parts/DSPillButton/config/usePillButton.d.ts +9 -0
  116. package/dist/types/parts/DSPillButton/config/useValidateProps.d.ts +3 -0
  117. package/dist/types/parts/DSPillButton/constants/index.d.ts +9 -0
  118. package/dist/types/parts/DSPillButton/index.d.ts +2 -0
  119. package/dist/types/parts/DSPillButton/react-desc-prop-types.d.ts +24 -0
  120. package/dist/types/parts/DSPillButton/tests/DSPillButton.test.d.ts +1 -0
  121. package/dist/types/parts/DSPillGroup/DSPillGroup.d.ts +5 -0
  122. package/dist/types/parts/DSPillGroup/PillGroupCTX.d.ts +4 -0
  123. package/dist/types/parts/DSPillGroup/config/usePillGroup.d.ts +386 -0
  124. package/dist/types/parts/DSPillGroup/config/useValidateProps.d.ts +3 -0
  125. package/dist/types/parts/DSPillGroup/constants/index.d.ts +9 -0
  126. package/dist/types/parts/DSPillGroup/index.d.ts +3 -0
  127. package/dist/types/parts/DSPillGroup/react-desc-prop-types.d.ts +21 -0
  128. package/dist/types/parts/DSPillGroup/tests/DSPillGroup.test.d.ts +1 -0
  129. package/dist/types/react-desc-prop-types.d.ts +2 -7
  130. package/dist/types/tests/DSPill.exports.test.d.ts +1 -0
  131. package/dist/types/tests/DSPill.get-owner-props.test.d.ts +1 -0
  132. package/package.json +15 -15
  133. package/dist/cjs/DSPillDefinitions.js.map +0 -7
  134. package/dist/cjs/components/PillButton.js.map +0 -7
  135. package/dist/cjs/components/PillGroup.js.map +0 -7
  136. package/dist/esm/DSPillDefinitions.js +0 -10
  137. package/dist/esm/DSPillDefinitions.js.map +0 -7
  138. package/dist/esm/components/PillButton.js.map +0 -7
  139. package/dist/esm/components/PillGroup.js +0 -76
  140. package/dist/esm/components/PillGroup.js.map +0 -7
  141. package/dist/types/DSPillDefinitions.d.ts +0 -3
  142. package/dist/types/components/PillGroup.d.ts +0 -9
@@ -1,11 +1,12 @@
1
1
  import * as React from "react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useOwnerProps } from "@elliemae/ds-props-helpers";
3
4
  import { DSTooltipV3 } from "@elliemae/ds-tooltip-v3";
4
5
  import React2 from "react";
5
6
  import { TextComponent } from "../TextComponent.js";
6
7
  import { StyledSpanWithTooltip, StyledValuePillWrapper } from "../styled.js";
7
- const ValuePill = React2.memo(
8
- ({
8
+ const ValuePill = React2.memo((props) => {
9
+ const {
9
10
  label,
10
11
  size,
11
12
  labelTruncated,
@@ -17,7 +18,9 @@ const ValuePill = React2.memo(
17
18
  readOnly,
18
19
  applyTooltipOverflowWrap,
19
20
  trailingComma
20
- }) => /* @__PURE__ */ jsxs(
21
+ } = props;
22
+ const ownerProps = useOwnerProps(props);
23
+ return /* @__PURE__ */ jsxs(
21
24
  StyledValuePillWrapper,
22
25
  {
23
26
  disabled,
@@ -31,13 +34,14 @@ const ValuePill = React2.memo(
31
34
  "data-label": ariaLabel || label,
32
35
  applyAriaDisabled,
33
36
  readOnly,
37
+ ...ownerProps,
34
38
  children: [
35
39
  iconLeft,
36
40
  tooltipValue !== "" ? /* @__PURE__ */ jsx(DSTooltipV3, { text: tooltipValue ?? "", applyTooltipOverflowWrap, children: /* @__PURE__ */ jsx(StyledSpanWithTooltip, { className: "ds-pill-tooltip-value", "aria-disabled": applyAriaDisabled, tabIndex: 0, children: label }) }) : /* @__PURE__ */ jsx(TextComponent, { labelTruncated, label: `${label}${trailingComma ? "," : ""}` })
37
41
  ]
38
42
  }
39
- )
40
- );
43
+ );
44
+ });
41
45
  export {
42
46
  ValuePill
43
47
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/types/ValuePill.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { DSTooltipV3 } from '@elliemae/ds-tooltip-v3';\nimport React from 'react';\nimport type { DSPillT } from '../../react-desc-prop-types.js';\nimport { TextComponent } from '../TextComponent.js';\nimport { StyledSpanWithTooltip, StyledValuePillWrapper } from '../styled.js';\n\nexport const ValuePill = React.memo<DSPillT.InternalProps>(\n ({\n label,\n size,\n labelTruncated,\n disabled,\n tooltipValue,\n iconLeft,\n ariaLabel,\n applyAriaDisabled,\n readOnly,\n applyTooltipOverflowWrap,\n trailingComma,\n }) => (\n <StyledValuePillWrapper\n disabled={disabled}\n pillSize={size}\n alignItems=\"center\"\n className=\"ds-pill-wrapper ds-pill-wrapper-value\"\n data-testid=\"ds-pill-wrapper\"\n cols={[iconLeft && 'min-content', 'auto'].filter((notFalse) => notFalse) as string[]}\n gutter=\"xxxs\"\n hasIcon={iconLeft !== null}\n data-label={ariaLabel || label}\n applyAriaDisabled={applyAriaDisabled}\n readOnly={readOnly}\n >\n {iconLeft}\n {tooltipValue !== '' ? (\n <DSTooltipV3 text={tooltipValue ?? ''} applyTooltipOverflowWrap={applyTooltipOverflowWrap}>\n <StyledSpanWithTooltip className=\"ds-pill-tooltip-value\" aria-disabled={applyAriaDisabled} tabIndex={0}>\n {label}\n </StyledSpanWithTooltip>\n </DSTooltipV3>\n ) : (\n <TextComponent labelTruncated={labelTruncated} label={`${label}${trailingComma ? ',' : ''}`} />\n )}\n </StyledValuePillWrapper>\n ),\n);\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACoBnB,SAgBM,KAhBN;AApBJ,SAAS,mBAAmB;AAC5B,OAAOA,YAAW;AAElB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB,8BAA8B;AAEvD,MAAM,YAAYA,OAAM;AAAA,EAC7B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU;AAAA,MACV,YAAW;AAAA,MACX,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,MAAM,CAAC,YAAY,eAAe,MAAM,EAAE,OAAO,CAAC,aAAa,QAAQ;AAAA,MACvE,QAAO;AAAA,MACP,SAAS,aAAa;AAAA,MACtB,cAAY,aAAa;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA,iBAAiB,KAChB,oBAAC,eAAY,MAAM,gBAAgB,IAAI,0BACrC,8BAAC,yBAAsB,WAAU,yBAAwB,iBAAe,mBAAmB,UAAU,GAClG,iBACH,GACF,IAEA,oBAAC,iBAAc,gBAAgC,OAAO,GAAG,KAAK,GAAG,gBAAgB,MAAM,EAAE,IAAI;AAAA;AAAA;AAAA,EAEjG;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { DSTooltipV3 } from '@elliemae/ds-tooltip-v3';\nimport React from 'react';\nimport type { DSPillT } from '../../react-desc-prop-types.js';\nimport { TextComponent } from '../TextComponent.js';\nimport { StyledSpanWithTooltip, StyledValuePillWrapper } from '../styled.js';\n\nexport const ValuePill = React.memo<DSPillT.InternalProps>((props) => {\n const {\n label,\n size,\n labelTruncated,\n disabled,\n tooltipValue,\n iconLeft,\n ariaLabel,\n applyAriaDisabled,\n readOnly,\n applyTooltipOverflowWrap,\n trailingComma,\n } = props;\n const ownerProps = useOwnerProps(props);\n return (\n <StyledValuePillWrapper\n disabled={disabled}\n pillSize={size}\n alignItems=\"center\"\n className=\"ds-pill-wrapper ds-pill-wrapper-value\"\n data-testid=\"ds-pill-wrapper\"\n cols={[iconLeft && 'min-content', 'auto'].filter((notFalse) => notFalse) as string[]}\n gutter=\"xxxs\"\n hasIcon={iconLeft !== null}\n data-label={ariaLabel || label}\n applyAriaDisabled={applyAriaDisabled}\n readOnly={readOnly}\n {...ownerProps}\n >\n {iconLeft}\n {tooltipValue !== '' ? (\n <DSTooltipV3 text={tooltipValue ?? ''} applyTooltipOverflowWrap={applyTooltipOverflowWrap}>\n <StyledSpanWithTooltip className=\"ds-pill-tooltip-value\" aria-disabled={applyAriaDisabled} tabIndex={0}>\n {label}\n </StyledSpanWithTooltip>\n </DSTooltipV3>\n ) : (\n <TextComponent labelTruncated={labelTruncated} label={`${label}${trailingComma ? ',' : ''}`} />\n )}\n </StyledValuePillWrapper>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACuBnB,SAiBM,KAjBN;AAvBJ,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,OAAOA,YAAW;AAElB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB,8BAA8B;AAEvD,MAAM,YAAYA,OAAM,KAA4B,CAAC,UAAU;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,aAAa,cAAc,KAAK;AACtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU;AAAA,MACV,YAAW;AAAA,MACX,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,MAAM,CAAC,YAAY,eAAe,MAAM,EAAE,OAAO,CAAC,aAAa,QAAQ;AAAA,MACvE,QAAO;AAAA,MACP,SAAS,aAAa;AAAA,MACtB,cAAY,aAAa;AAAA,MACzB;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,iBAAiB,KAChB,oBAAC,eAAY,MAAM,gBAAgB,IAAI,0BACrC,8BAAC,yBAAsB,WAAU,yBAAwB,iBAAe,mBAAmB,UAAU,GAClG,iBACH,GACF,IAEA,oBAAC,iBAAc,gBAAgC,OAAO,GAAG,KAAK,GAAG,gBAAgB,MAAM,EAAE,IAAI;AAAA;AAAA;AAAA,EAEjG;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { slotObjectToDataTestIds } from "@elliemae/ds-system";
3
+ const DSPillV2Name = "DSPill";
4
+ const DSPillName = DSPillV2Name;
5
+ const PILL_V2_SLOTS = {
6
+ WRAPPER: "wrapper",
7
+ PILL_GROUP: "pill-group",
8
+ PILL_BUTTON: "pill-button",
9
+ PILL_MENU_BUTTON: "menu-button-chevron"
10
+ };
11
+ const PILL_V2_DATA_TESTID = {
12
+ ...slotObjectToDataTestIds(DSPillV2Name, PILL_V2_SLOTS),
13
+ PILL_BUTTON: "ds-button"
14
+ };
15
+ export {
16
+ DSPillName,
17
+ DSPillV2Name,
18
+ PILL_V2_DATA_TESTID,
19
+ PILL_V2_SLOTS
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/constants/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSPillV2Name = 'DSPill';\nexport const DSPillName = DSPillV2Name;\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_V2_SLOTS = {\n WRAPPER: 'wrapper',\n PILL_GROUP: 'pill-group',\n PILL_BUTTON: 'pill-button',\n PILL_MENU_BUTTON: 'menu-button-chevron',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_V2_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSPillV2Name, PILL_V2_SLOTS),\n PILL_BUTTON: 'ds-button',\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,+BAA+B;AAEjC,MAAM,eAAe;AACrB,MAAM,aAAa;AAGnB,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AACpB;AAGO,MAAM,sBAAsB;AAAA,EACjC,GAAG,wBAAwB,cAAc,aAAa;AAAA,EACtD,aAAa;AACf;",
6
+ "names": []
7
+ }
package/dist/esm/index.js CHANGED
@@ -1,13 +1,8 @@
1
1
  import * as React from "react";
2
- import {
3
- DSPillV2,
4
- DSPillButton,
5
- DSPillButtonWithSchema,
6
- DSPillGroupV2,
7
- DSPillGroupV2WithSchema,
8
- DSPillV2WithSchema
9
- } from "./components/index.js";
10
- import { DSPillButtonName, DSPillGroupName, DSPillName } from "./DSPillDefinitions.js";
2
+ import { DSPillV2, DSPillV2WithSchema } from "./components/index.js";
3
+ import { DSPillGroupV2, DSPillGroupV2WithSchema, DSPillGroupName } from "./parts/DSPillGroup/index.js";
4
+ import { DSPillButton, DSPillButtonWithSchema, DSPillButtonName } from "./parts/DSPillButton/index.js";
5
+ import { PILL_V2_DATA_TESTID, PILL_V2_SLOTS, DSPillName, DSPillV2Name } from "./constants/index.js";
11
6
  export {
12
7
  DSPillButton,
13
8
  DSPillButtonName,
@@ -17,6 +12,9 @@ export {
17
12
  DSPillGroupV2WithSchema,
18
13
  DSPillName,
19
14
  DSPillV2,
20
- DSPillV2WithSchema
15
+ DSPillV2Name,
16
+ DSPillV2WithSchema,
17
+ PILL_V2_DATA_TESTID,
18
+ PILL_V2_SLOTS
21
19
  };
22
20
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export {\n DSPillV2,\n DSPillButton,\n DSPillButtonWithSchema,\n DSPillGroupV2,\n DSPillGroupV2WithSchema,\n DSPillV2WithSchema,\n} from './components/index.js';\nexport { DSPillButtonName, DSPillGroupName, DSPillName } from './DSPillDefinitions.js';\nexport type { DSPillT } from './react-desc-prop-types.js';\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB,iBAAiB,kBAAkB;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSPillV2, DSPillV2WithSchema } from './components/index.js';\nexport { DSPillGroupV2, DSPillGroupV2WithSchema, DSPillGroupName } from './parts/DSPillGroup/index.js';\nexport { DSPillButton, DSPillButtonWithSchema, DSPillButtonName } from './parts/DSPillButton/index.js';\nexport { PILL_V2_DATA_TESTID, PILL_V2_SLOTS, DSPillName, DSPillV2Name } from './constants/index.js';\nexport type { DSPillT } from './react-desc-prop-types.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,UAAU,0BAA0B;AAC7C,SAAS,eAAe,yBAAyB,uBAAuB;AACxE,SAAS,cAAc,wBAAwB,wBAAwB;AACvE,SAAS,qBAAqB,eAAe,YAAY,oBAAoB;",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,21 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useCallback } from "react";
4
- import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from "@elliemae/ds-props-helpers";
5
- import { StyledPillButton } from "./styled.js";
6
- import { DSPillButtonName } from "../DSPillDefinitions.js";
7
- import { DSPillButtonDefaultProps, DSPillButtonPropTypesSchema } from "../react-desc-prop-types.js";
4
+ import { describe } from "@elliemae/ds-props-helpers";
5
+ import { DSPillButtonPropTypesSchema } from "./react-desc-prop-types.js";
6
+ import { usePillButton } from "./config/usePillButton.js";
7
+ import { DSPillButtonName } from "./constants/index.js";
8
+ import { StyledPillButton } from "../../components/styled.js";
8
9
  const typeToClassName = {
9
10
  only: "ds-pill-button-only",
10
11
  left: "ds-pill-button-left",
11
12
  right: "ds-pill-button-right"
12
13
  };
13
14
  const DSPillButton = (props) => {
14
- const { children, ...restProps } = props;
15
- const propsWithDefaults = useMemoMergePropsWithDefault(
16
- restProps,
17
- DSPillButtonDefaultProps
18
- );
19
- useValidateTypescriptPropTypes(propsWithDefaults, DSPillButtonPropTypesSchema, DSPillButtonName);
20
- const { type, onClick, applyAriaDisabled, ...rest } = propsWithDefaults;
15
+ const {
16
+ propsWithDefault: { type, onClick, applyAriaDisabled, children, ...rest },
17
+ ownerProps
18
+ } = usePillButton(props);
21
19
  const handleOnClick = useCallback(
22
20
  (e) => {
23
21
  if (applyAriaDisabled) return;
@@ -34,15 +32,16 @@ const DSPillButton = (props) => {
34
32
  type: "button",
35
33
  onClick: handleOnClick,
36
34
  "aria-disabled": applyAriaDisabled,
35
+ ...ownerProps,
37
36
  children
38
37
  }
39
38
  );
40
39
  };
41
40
  DSPillButton.displayName = DSPillButtonName;
42
- const DSPillButtonWithSchema = describe(DSPillButton).description("Pill button");
41
+ const DSPillButtonWithSchema = describe(DSPillButton);
43
42
  DSPillButtonWithSchema.propTypes = DSPillButtonPropTypesSchema;
44
43
  export {
45
44
  DSPillButton,
46
45
  DSPillButtonWithSchema
47
46
  };
48
- //# sourceMappingURL=PillButton.js.map
47
+ //# sourceMappingURL=DSPillButton.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillButton/DSPillButton.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { type DSPillButtonT, DSPillButtonPropTypesSchema } from './react-desc-prop-types.js';\nimport { usePillButton } from './config/usePillButton.js';\nimport { DSPillButtonName } from './constants/index.js';\nimport { StyledPillButton } from '../../components/styled.js';\n\nconst typeToClassName = {\n only: 'ds-pill-button-only',\n left: 'ds-pill-button-left',\n right: 'ds-pill-button-right',\n};\n\nconst DSPillButton: React.ComponentType<DSPillButtonT.Props> = (props) => {\n const {\n propsWithDefault: { type, onClick, applyAriaDisabled, children, ...rest },\n ownerProps,\n } = usePillButton(props);\n const handleOnClick = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement>) => {\n if (applyAriaDisabled) return;\n if (onClick) onClick(e as React.MouseEvent<HTMLButtonElement>);\n },\n [onClick, applyAriaDisabled],\n );\n\n return (\n <StyledPillButton\n {...rest}\n buttonType=\"raw\"\n className={`${typeToClassName[type]} ${rest.className ?? ''}`}\n type=\"button\"\n onClick={handleOnClick}\n aria-disabled={applyAriaDisabled}\n {...ownerProps}\n >\n {children}\n </StyledPillButton>\n );\n};\n\nDSPillButton.displayName = DSPillButtonName;\nconst DSPillButtonWithSchema = describe(DSPillButton);\nDSPillButtonWithSchema.propTypes = DSPillButtonPropTypesSchema;\n\nexport { DSPillButton, DSPillButtonWithSchema };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC2BnB;AA3BJ,SAAgB,mBAAmB;AACnC,SAAS,gBAAgB;AACzB,SAA6B,mCAAmC;AAChE,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AAEjC,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AACT;AAEA,MAAM,eAAyD,CAAC,UAAU;AACxE,QAAM;AAAA,IACJ,kBAAkB,EAAE,MAAM,SAAS,mBAAmB,UAAU,GAAG,KAAK;AAAA,IACxE;AAAA,EACF,IAAI,cAAc,KAAK;AACvB,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAAoF;AACnF,UAAI,kBAAmB;AACvB,UAAI,QAAS,SAAQ,CAAwC;AAAA,IAC/D;AAAA,IACA,CAAC,SAAS,iBAAiB;AAAA,EAC7B;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,YAAW;AAAA,MACX,WAAW,GAAG,gBAAgB,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;AAAA,MAC3D,MAAK;AAAA,MACL,SAAS;AAAA,MACT,iBAAe;AAAA,MACd,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEA,aAAa,cAAc;AAC3B,MAAM,yBAAyB,SAAS,YAAY;AACpD,uBAAuB,YAAY;",
6
+ "names": []
7
+ }
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import { useGetXstyledProps, useMemoMergePropsWithDefault, useOwnerProps } from "@elliemae/ds-props-helpers";
4
+ import { DSPillButtonPropTypesSchema, defaultProps } from "../react-desc-prop-types.js";
5
+ import { useValidateProps } from "./useValidateProps.js";
6
+ const usePillButton = (propsFromUser) => {
7
+ const propsWithDefault = useMemoMergePropsWithDefault(propsFromUser, defaultProps);
8
+ useValidateProps(propsWithDefault, DSPillButtonPropTypesSchema);
9
+ const xstyledProps = useGetXstyledProps(propsWithDefault);
10
+ const ownerProps = useOwnerProps(propsWithDefault);
11
+ return React2.useMemo(
12
+ () => ({
13
+ propsWithDefault,
14
+ xstyledProps,
15
+ ownerProps
16
+ }),
17
+ [propsWithDefault, xstyledProps, ownerProps]
18
+ );
19
+ };
20
+ export {
21
+ usePillButton
22
+ };
23
+ //# sourceMappingURL=usePillButton.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillButton/config/usePillButton.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useGetXstyledProps, useMemoMergePropsWithDefault, useOwnerProps } from '@elliemae/ds-props-helpers';\n\nimport { type DSPillButtonT, DSPillButtonPropTypesSchema, defaultProps } from '../react-desc-prop-types.js';\nimport { useValidateProps } from './useValidateProps.js';\n\nexport const usePillButton = (propsFromUser: DSPillButtonT.Props) => {\n // =============================================================================\n // MERGE WITH DEFAULT AND VALIDATE PROPS\n // =============================================================================\n const propsWithDefault = useMemoMergePropsWithDefault<DSPillButtonT.InternalProps>(propsFromUser, defaultProps);\n useValidateProps(propsWithDefault, DSPillButtonPropTypesSchema);\n // =============================================================================\n // XSTYLED PROPS\n // =============================================================================\n const xstyledProps = useGetXstyledProps(propsWithDefault);\n // =============================================================================\n // OWNER PROPS\n // =============================================================================\n const ownerProps = useOwnerProps(propsWithDefault);\n // =============================================================================\n // AD HOC PER COMPONENT LOGIC\n // =============================================================================\n\n // =============================================================================\n // HELPERS HOOKS CONFIGS\n // =============================================================================\n // const eventHandlers = useEventHandlers({ propsWithDefault, instanceUid }); // <-- complex logic should be made atomics this way\n\n return React.useMemo(\n () => ({\n propsWithDefault,\n xstyledProps,\n ownerProps,\n }),\n [propsWithDefault, xstyledProps, ownerProps],\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,oBAAoB,8BAA8B,qBAAqB;AAEhF,SAA6B,6BAA6B,oBAAoB;AAC9E,SAAS,wBAAwB;AAE1B,MAAM,gBAAgB,CAAC,kBAAuC;AAInE,QAAM,mBAAmB,6BAA0D,eAAe,YAAY;AAC9G,mBAAiB,kBAAkB,2BAA2B;AAI9D,QAAM,eAAe,mBAAmB,gBAAgB;AAIxD,QAAM,aAAa,cAAc,gBAAgB;AAUjD,SAAOA,OAAM;AAAA,IACX,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,cAAc,UAAU;AAAA,EAC7C;AACF;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { useValidateTypescriptPropTypes } from "@elliemae/ds-props-helpers";
3
+ import { DSPillButtonName } from "../constants/index.js";
4
+ const useValidateProps = (props, propTypes) => {
5
+ useValidateTypescriptPropTypes(props, propTypes, DSPillButtonName);
6
+ };
7
+ export {
8
+ useValidateProps
9
+ };
10
+ //# sourceMappingURL=useValidateProps.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillButton/config/useValidateProps.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport type { ValidationMap } from '@elliemae/ds-props-helpers';\nimport { type DSPillButtonT } from '../react-desc-prop-types.js';\nimport { DSPillButtonName } from '../constants/index.js';\n\nexport const useValidateProps = (\n props: DSPillButtonT.InternalProps,\n propTypes: ValidationMap<DSPillButtonT.Props>,\n): void => {\n // we validate the \"required if\" via 'isRequiredIf from our custom PropTypes\n useValidateTypescriptPropTypes(props, propTypes, DSPillButtonName);\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,sCAAsC;AAG/C,SAAS,wBAAwB;AAE1B,MAAM,mBAAmB,CAC9B,OACA,cACS;AAET,iCAA+B,OAAO,WAAW,gBAAgB;AACnE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { slotObjectToDataTestIds } from "@elliemae/ds-system";
3
+ import { DSPillV2Name } from "../../../constants/index.js";
4
+ const DSPillButtonName = "DSPillbutton";
5
+ const PILL_BUTTON_SLOTS = {
6
+ PILL_BUTTON: "pill-button"
7
+ };
8
+ const PILL_BUTTON_DATA_TESTID = {
9
+ ...slotObjectToDataTestIds(DSPillV2Name, PILL_BUTTON_SLOTS),
10
+ PILL_BUTTON: "ds-button"
11
+ };
12
+ export {
13
+ DSPillButtonName,
14
+ DSPillV2Name,
15
+ PILL_BUTTON_DATA_TESTID,
16
+ PILL_BUTTON_SLOTS
17
+ };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillButton/constants/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { slotObjectToDataTestIds } from '@elliemae/ds-system';\nimport { DSPillV2Name } from '../../../constants/index.js';\nexport { DSPillV2Name };\n\n// This should be used only for displayName, and useValidateProps.\n// For slots definition, use parent component name\nexport const DSPillButtonName = 'DSPillbutton';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_BUTTON_SLOTS = {\n PILL_BUTTON: 'pill-button',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_BUTTON_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSPillV2Name, PILL_BUTTON_SLOTS),\n PILL_BUTTON: 'ds-button',\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,+BAA+B;AACxC,SAAS,oBAAoB;AAKtB,MAAM,mBAAmB;AAGzB,MAAM,oBAAoB;AAAA,EAC/B,aAAa;AACf;AAGO,MAAM,0BAA0B;AAAA,EACrC,GAAG,wBAAwB,cAAc,iBAAiB;AAAA,EAC1D,aAAa;AACf;",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { DSPillButton, DSPillButtonWithSchema } from "./DSPillButton.js";
3
+ import { PILL_BUTTON_DATA_TESTID, DSPillButtonName } from "./constants/index.js";
4
+ export {
5
+ DSPillButton,
6
+ DSPillButtonName,
7
+ DSPillButtonWithSchema,
8
+ PILL_BUTTON_DATA_TESTID
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillButton/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSPillButton, DSPillButtonWithSchema } from './DSPillButton.js';\nexport { PILL_BUTTON_DATA_TESTID, DSPillButtonName } from './constants/index.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAAc,8BAA8B;AACrD,SAAS,yBAAyB,wBAAwB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ import {
3
+ PropTypes,
4
+ getPropsPerSlotPropTypes,
5
+ globalAttributesPropTypes,
6
+ xstyledPropTypes
7
+ } from "@elliemae/ds-props-helpers";
8
+ import { DSPillV2Name, PILL_BUTTON_SLOTS } from "./constants/index.js";
9
+ const defaultProps = {
10
+ type: "right",
11
+ width: "100%",
12
+ height: "100%"
13
+ };
14
+ const DSPillButtonPropTypes = {
15
+ ...getPropsPerSlotPropTypes(DSPillV2Name, PILL_BUTTON_SLOTS),
16
+ ...globalAttributesPropTypes,
17
+ ...xstyledPropTypes,
18
+ type: PropTypes.oneOf(["only", "left", "right"]).description("The position in which this button will be placed. Only used for css styling internally").defaultValue("right"),
19
+ width: PropTypes.string.description("Width of the button").defaultValue("100%"),
20
+ height: PropTypes.string.description("Height of the button").defaultValue("100%"),
21
+ innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).description("Inner ref to button component."),
22
+ "data-testid": PropTypes.string.description("root element data-testid"),
23
+ applyAriaDisabled: PropTypes.bool.description(
24
+ "Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION."
25
+ ).defaultValue(false)
26
+ };
27
+ const DSPillButtonPropTypesSchema = DSPillButtonPropTypes;
28
+ export {
29
+ DSPillButtonPropTypes,
30
+ DSPillButtonPropTypesSchema,
31
+ defaultProps
32
+ };
33
+ //# sourceMappingURL=react-desc-prop-types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillButton/react-desc-prop-types.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-empty-interface */\nimport type { DSButtonT } from '@elliemae/ds-button-v2';\nimport type { DSPropTypesSchema, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';\nimport {\n PropTypes,\n getPropsPerSlotPropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSPillV2Name, PILL_BUTTON_SLOTS } from './constants/index.js';\n\nexport declare namespace DSPillButtonT {\n export interface RequiredProps {}\n\n export interface DefaultProps {\n type: 'left' | 'right' | 'only';\n width: string;\n height: string;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSPillV2Name, typeof PILL_BUTTON_SLOTS> {\n applyAriaDisabled?: boolean;\n innerRef?: TypescriptHelpersT.AnyRef<HTMLButtonElement>;\n }\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<DSButtonT.Props, 'type' | 'buttonType' | 'isV3' | 'dsButtonRoot' | 'width' | 'height'>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<DSButtonT.Props, 'type' | 'buttonType' | 'isV3' | 'dsButtonRoot' | 'width' | 'height'>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSPillButtonT.DefaultProps = {\n type: 'right',\n width: '100%',\n height: '100%',\n};\n\nexport const DSPillButtonPropTypes: DSPropTypesSchema<DSPillButtonT.Props> = {\n ...getPropsPerSlotPropTypes(DSPillV2Name, PILL_BUTTON_SLOTS),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf(['only', 'left', 'right'])\n .description('The position in which this button will be placed. Only used for css styling internally')\n .defaultValue('right'),\n width: PropTypes.string.description('Width of the button').defaultValue('100%'),\n height: PropTypes.string.description('Height of the button').defaultValue('100%'),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).description('Inner ref to button component.'),\n 'data-testid': PropTypes.string.description('root element data-testid'),\n applyAriaDisabled: PropTypes.bool\n .description(\n 'Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION.',\n )\n .defaultValue(false),\n};\n\nexport const DSPillButtonPropTypesSchema = DSPillButtonPropTypes as unknown as ValidationMap<DSPillButtonT.Props>;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACGvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAAc,yBAAyB;AA+BzC,MAAM,eAA2C;AAAA,EACtD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,wBAAgE;AAAA,EAC3E,GAAG,yBAAyB,cAAc,iBAAiB;AAAA,EAC3D,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,UAAU,MAAM,CAAC,QAAQ,QAAQ,OAAO,CAAC,EAC5C,YAAY,wFAAwF,EACpG,aAAa,OAAO;AAAA,EACvB,OAAO,UAAU,OAAO,YAAY,qBAAqB,EAAE,aAAa,MAAM;AAAA,EAC9E,QAAQ,UAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,MAAM;AAAA,EAChF,UAAU,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,IAAI,CAAC,EAAE,YAAY,gCAAgC;AAAA,EAC9G,eAAe,UAAU,OAAO,YAAY,0BAA0B;AAAA,EACtE,mBAAmB,UAAU,KAC1B;AAAA,IACC;AAAA,EACF,EACC,aAAa,KAAK;AACvB;AAEO,MAAM,8BAA8B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,39 @@
1
+ import * as React from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { describe } from "@elliemae/ds-props-helpers";
4
+ import React2 from "react";
5
+ import { usePillGroup } from "./config/usePillGroup.js";
6
+ import { PillGroupContext } from "./PillGroupCTX.js";
7
+ import { DSPillGroupPropTypesSchema } from "./react-desc-prop-types.js";
8
+ import { StyledPillGroup } from "../../components/styled.js";
9
+ import { DSPillGroupName } from "./constants/index.js";
10
+ const DSPillGroupV2 = (props) => {
11
+ const {
12
+ ctxValue,
13
+ globalAttributes,
14
+ pillGroupUid,
15
+ ownerProps,
16
+ propsWithDefault: { width, children, innerRef }
17
+ } = usePillGroup(props);
18
+ return /* @__PURE__ */ jsx(PillGroupContext.Provider, { value: ctxValue, children: /* @__PURE__ */ jsx(
19
+ StyledPillGroup,
20
+ {
21
+ ...globalAttributes,
22
+ width,
23
+ id: pillGroupUid,
24
+ cols: React2.Children.map(children, () => "auto"),
25
+ gutter: "2px",
26
+ innerRef,
27
+ ...ownerProps,
28
+ children
29
+ }
30
+ ) });
31
+ };
32
+ DSPillGroupV2.displayName = DSPillGroupName;
33
+ const DSPillGroupV2WithSchema = describe(DSPillGroupV2);
34
+ DSPillGroupV2WithSchema.propTypes = DSPillGroupPropTypesSchema;
35
+ export {
36
+ DSPillGroupV2,
37
+ DSPillGroupV2WithSchema
38
+ };
39
+ //# sourceMappingURL=DSPillGroup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillGroup/DSPillGroup.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { describe } from '@elliemae/ds-props-helpers';\nimport React from 'react';\nimport { usePillGroup } from './config/usePillGroup.js';\nimport { PillGroupContext } from './PillGroupCTX.js';\nimport { type DSPillGroupT, DSPillGroupPropTypesSchema } from './react-desc-prop-types.js';\n\nimport { StyledPillGroup } from '../../components/styled.js';\nimport { DSPillGroupName } from './constants/index.js';\n\nconst DSPillGroupV2: React.ComponentType<DSPillGroupT.Props> = (props) => {\n const {\n ctxValue,\n globalAttributes,\n pillGroupUid,\n ownerProps,\n propsWithDefault: { width, children, innerRef },\n } = usePillGroup(props);\n return (\n <PillGroupContext.Provider value={ctxValue}>\n <StyledPillGroup\n {...globalAttributes}\n width={width}\n id={pillGroupUid}\n cols={React.Children.map(children, () => 'auto') as string[]}\n gutter=\"2px\"\n innerRef={innerRef}\n {...ownerProps}\n >\n {children}\n </StyledPillGroup>\n </PillGroupContext.Provider>\n );\n};\n\nDSPillGroupV2.displayName = DSPillGroupName;\nconst DSPillGroupV2WithSchema = describe(DSPillGroupV2);\nDSPillGroupV2WithSchema.propTypes = DSPillGroupPropTypesSchema;\n\nexport { DSPillGroupV2, DSPillGroupV2WithSchema };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACmBjB;AAnBN,SAAS,gBAAgB;AACzB,OAAOA,YAAW;AAClB,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAA4B,kCAAkC;AAE9D,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAEhC,MAAM,gBAAyD,CAAC,UAAU;AACxE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB,EAAE,OAAO,UAAU,SAAS;AAAA,EAChD,IAAI,aAAa,KAAK;AACtB,SACE,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,UAChC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,IAAI;AAAA,MACJ,MAAMA,OAAM,SAAS,IAAI,UAAU,MAAM,MAAM;AAAA,MAC/C,QAAO;AAAA,MACP;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH,GACF;AAEJ;AAEA,cAAc,cAAc;AAC5B,MAAM,0BAA0B,SAAS,aAAa;AACtD,wBAAwB,YAAY;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { createContext } from "react";
3
+ const defaultContext = { onKeyboardRemove: () => null, onKeyboardNavigation: () => null };
4
+ const PillGroupContext = createContext(defaultContext);
5
+ var PillGroupCTX_default = PillGroupContext;
6
+ export {
7
+ PillGroupContext,
8
+ PillGroupCTX_default as default
9
+ };
10
+ //# sourceMappingURL=PillGroupCTX.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillGroup/PillGroupCTX.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { createContext } from 'react';\nimport type { PillGroupCTX } from './config/usePillGroup.js';\n\nconst defaultContext = { onKeyboardRemove: () => null, onKeyboardNavigation: () => null } as PillGroupCTX;\n\n/** Context for cross component communication */\nexport const PillGroupContext = createContext<PillGroupCTX>(defaultContext);\n\nexport default PillGroupContext;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,qBAAqB;AAG9B,MAAM,iBAAiB,EAAE,kBAAkB,MAAM,MAAM,sBAAsB,MAAM,KAAK;AAGjF,MAAM,mBAAmB,cAA4B,cAAc;AAE1E,IAAO,uBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,74 @@
1
+ import * as React from "react";
2
+ import {
3
+ useGetGlobalAttributes,
4
+ useGetXstyledProps,
5
+ useMemoMergePropsWithDefault,
6
+ useOwnerProps
7
+ } from "@elliemae/ds-props-helpers";
8
+ import React2, { useCallback, useMemo } from "react";
9
+ import { uid } from "uid";
10
+ import { DSPillGroupPropTypesSchema, defaultProps } from "../react-desc-prop-types.js";
11
+ import { useValidateProps } from "./useValidateProps.js";
12
+ const usePillGroup = (propsFromUser) => {
13
+ const propsWithDefault = useMemoMergePropsWithDefault(propsFromUser, defaultProps);
14
+ useValidateProps(propsWithDefault, DSPillGroupPropTypesSchema);
15
+ const xstyledProps = useGetXstyledProps(propsWithDefault);
16
+ const globalAttributes = useGetGlobalAttributes(
17
+ propsWithDefault
18
+ );
19
+ const ownerProps = useOwnerProps(propsWithDefault);
20
+ const pillGroupUid = React2.useMemo(() => `ds-pill-group-${uid(5)}`, []);
21
+ const onKeyboardRemove = useCallback(
22
+ (pillUid) => {
23
+ const elems = [...document.querySelectorAll(`#${pillGroupUid} .ds-pill-focus-point`)];
24
+ const pillIndex = elems.findIndex((elem) => elem.id === pillUid);
25
+ if (pillIndex > 0) {
26
+ elems[pillIndex - 1].focus();
27
+ } else if (pillIndex + 1 < elems.length) {
28
+ elems[pillIndex + 1].focus();
29
+ }
30
+ },
31
+ [pillGroupUid]
32
+ );
33
+ const onKeyboardNavigation = useCallback(
34
+ (pillUid, step, e) => {
35
+ const elems = [...document.querySelectorAll(`#${pillGroupUid} .ds-pill-focus-point`)];
36
+ const pillIndex = elems.findIndex((elem) => elem.id === pillUid);
37
+ if (pillIndex >= 0) {
38
+ if (elems[pillIndex + step]) {
39
+ e.stopPropagation();
40
+ elems[pillIndex + step].focus();
41
+ }
42
+ }
43
+ },
44
+ [pillGroupUid]
45
+ );
46
+ const ctxValue = useMemo(
47
+ () => ({ onKeyboardRemove, onKeyboardNavigation }),
48
+ [onKeyboardRemove, onKeyboardNavigation]
49
+ );
50
+ return React2.useMemo(
51
+ () => ({
52
+ propsWithDefault,
53
+ xstyledProps,
54
+ pillGroupUid,
55
+ globalAttributes,
56
+ ctxValue,
57
+ ownerProps
58
+ // ...eventHandlers,
59
+ }),
60
+ [
61
+ propsWithDefault,
62
+ xstyledProps,
63
+ pillGroupUid,
64
+ globalAttributes,
65
+ ctxValue,
66
+ ownerProps
67
+ // ...eventHandlers,
68
+ ]
69
+ );
70
+ };
71
+ export {
72
+ usePillGroup
73
+ };
74
+ //# sourceMappingURL=usePillGroup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillGroup/config/usePillGroup.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { DSGridT } from '@elliemae/ds-grid';\nimport {\n useGetGlobalAttributes,\n useGetXstyledProps,\n useMemoMergePropsWithDefault,\n useOwnerProps,\n} from '@elliemae/ds-props-helpers';\nimport React, { useCallback, useMemo } from 'react';\nimport { uid } from 'uid';\nimport { type DSPillGroupT, DSPillGroupPropTypesSchema, defaultProps } from '../react-desc-prop-types.js';\nimport { useValidateProps } from './useValidateProps.js';\n\nexport interface PillGroupCTX {\n onKeyboardRemove: (pillUid: string) => void;\n onKeyboardNavigation: (pillUid: string, step: number, e: React.KeyboardEvent) => void;\n}\n\nexport const usePillGroup = (propsFromUser: DSPillGroupT.Props) => {\n // =============================================================================\n // MERGE WITH DEFAULT AND VALIDATE PROPS\n // =============================================================================\n const propsWithDefault = useMemoMergePropsWithDefault<DSPillGroupT.InternalProps>(propsFromUser, defaultProps);\n useValidateProps(propsWithDefault, DSPillGroupPropTypesSchema);\n // =============================================================================\n // XSTYLED PROPS\n // =============================================================================\n const xstyledProps = useGetXstyledProps(propsWithDefault);\n // =============================================================================\n // GLOBAL ATTRIBUTES PROPS\n // =============================================================================\n const globalAttributes = useGetGlobalAttributes<DSPillGroupT.InternalProps, HTMLDivElement, DSGridT.Props>(\n propsWithDefault,\n );\n // =============================================================================\n // OWNER PROPS\n // =============================================================================\n const ownerProps = useOwnerProps(propsWithDefault);\n // =============================================================================\n // AD HOC PER COMPONENT LOGIC\n // =============================================================================\n // custom code goes here, this is an example\n const pillGroupUid = React.useMemo(() => `ds-pill-group-${uid(5)}`, []);\n\n const onKeyboardRemove = useCallback(\n (pillUid: string) => {\n const elems = [...document.querySelectorAll(`#${pillGroupUid} .ds-pill-focus-point`)] as HTMLElement[];\n\n const pillIndex = elems.findIndex((elem) => elem.id === pillUid);\n\n if (pillIndex > 0) {\n elems[pillIndex - 1].focus();\n } else if (pillIndex + 1 < elems.length) {\n elems[pillIndex + 1].focus();\n }\n },\n [pillGroupUid],\n );\n const onKeyboardNavigation = useCallback(\n (pillUid: string, step: number, e: React.KeyboardEvent) => {\n const elems = [...document.querySelectorAll(`#${pillGroupUid} .ds-pill-focus-point`)] as HTMLElement[];\n\n const pillIndex = elems.findIndex((elem) => elem.id === pillUid);\n\n if (pillIndex >= 0) {\n if (elems[pillIndex + step]) {\n e.stopPropagation();\n elems[pillIndex + step].focus();\n }\n }\n },\n [pillGroupUid],\n );\n\n const ctxValue = useMemo(\n () => ({ onKeyboardRemove, onKeyboardNavigation }),\n [onKeyboardRemove, onKeyboardNavigation],\n );\n\n // =============================================================================\n // HELPERS HOOKS CONFIGS\n // =============================================================================\n // const eventHandlers = useEventHandlers({ propsWithDefault, instanceUid }); // <-- complex logic should be made atomics this way\n\n return React.useMemo(\n () => ({\n propsWithDefault,\n xstyledProps,\n pillGroupUid,\n globalAttributes,\n ctxValue,\n ownerProps,\n // ...eventHandlers,\n }),\n [\n propsWithDefault,\n xstyledProps,\n pillGroupUid,\n globalAttributes,\n ctxValue,\n ownerProps,\n // ...eventHandlers,\n ],\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACCvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,OAAOA,UAAS,aAAa,eAAe;AAC5C,SAAS,WAAW;AACpB,SAA4B,4BAA4B,oBAAoB;AAC5E,SAAS,wBAAwB;AAO1B,MAAM,eAAe,CAAC,kBAAsC;AAIjE,QAAM,mBAAmB,6BAAyD,eAAe,YAAY;AAC7G,mBAAiB,kBAAkB,0BAA0B;AAI7D,QAAM,eAAe,mBAAmB,gBAAgB;AAIxD,QAAM,mBAAmB;AAAA,IACvB;AAAA,EACF;AAIA,QAAM,aAAa,cAAc,gBAAgB;AAKjD,QAAM,eAAeA,OAAM,QAAQ,MAAM,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEtE,QAAM,mBAAmB;AAAA,IACvB,CAAC,YAAoB;AACnB,YAAM,QAAQ,CAAC,GAAG,SAAS,iBAAiB,IAAI,YAAY,uBAAuB,CAAC;AAEpF,YAAM,YAAY,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,OAAO;AAE/D,UAAI,YAAY,GAAG;AACjB,cAAM,YAAY,CAAC,EAAE,MAAM;AAAA,MAC7B,WAAW,YAAY,IAAI,MAAM,QAAQ;AACvC,cAAM,YAAY,CAAC,EAAE,MAAM;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AACA,QAAM,uBAAuB;AAAA,IAC3B,CAAC,SAAiB,MAAc,MAA2B;AACzD,YAAM,QAAQ,CAAC,GAAG,SAAS,iBAAiB,IAAI,YAAY,uBAAuB,CAAC;AAEpF,YAAM,YAAY,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,OAAO;AAE/D,UAAI,aAAa,GAAG;AAClB,YAAI,MAAM,YAAY,IAAI,GAAG;AAC3B,YAAE,gBAAgB;AAClB,gBAAM,YAAY,IAAI,EAAE,MAAM;AAAA,QAChC;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,WAAW;AAAA,IACf,OAAO,EAAE,kBAAkB,qBAAqB;AAAA,IAChD,CAAC,kBAAkB,oBAAoB;AAAA,EACzC;AAOA,SAAOA,OAAM;AAAA,IACX,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAEF;AAAA,EACF;AACF;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { useValidateTypescriptPropTypes } from "@elliemae/ds-props-helpers";
3
+ import { DSPillGroupName } from "../constants/index.js";
4
+ const useValidateProps = (props, propTypes) => {
5
+ useValidateTypescriptPropTypes(props, propTypes, DSPillGroupName);
6
+ };
7
+ export {
8
+ useValidateProps
9
+ };
10
+ //# sourceMappingURL=useValidateProps.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillGroup/config/useValidateProps.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport type { ValidationMap } from '@elliemae/ds-props-helpers';\nimport { type DSPillGroupT } from '../react-desc-prop-types.js';\nimport { DSPillGroupName } from '../constants/index.js';\n\nexport const useValidateProps = (\n props: DSPillGroupT.InternalProps,\n propTypes: ValidationMap<DSPillGroupT.Props>,\n): void => {\n // we validate the \"required if\" via 'isRequiredIf from our custom PropTypes\n useValidateTypescriptPropTypes(props, propTypes, DSPillGroupName);\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,sCAAsC;AAG/C,SAAS,uBAAuB;AAEzB,MAAM,mBAAmB,CAC9B,OACA,cACS;AAET,iCAA+B,OAAO,WAAW,eAAe;AAClE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import { slotObjectToDataTestIds } from "@elliemae/ds-system";
3
+ import { DSPillV2Name } from "../../../constants/index.js";
4
+ const DSPillGroupName = "DSPillgroup";
5
+ const PILL_GROUP_SLOTS = {
6
+ PILL_GROUP: "pill-group"
7
+ };
8
+ const PILL_GROUP_DATA_TESTID = slotObjectToDataTestIds(DSPillV2Name, PILL_GROUP_SLOTS);
9
+ export {
10
+ DSPillGroupName,
11
+ DSPillV2Name,
12
+ PILL_GROUP_DATA_TESTID,
13
+ PILL_GROUP_SLOTS
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/DSPillGroup/constants/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { slotObjectToDataTestIds } from '@elliemae/ds-system';\nimport { DSPillV2Name } from '../../../constants/index.js';\nexport { DSPillV2Name };\n\n// This should be used only for displayName, and useValidateProps.\n// For slots definition, use parent component name\nexport const DSPillGroupName = 'DSPillgroup';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_GROUP_SLOTS = {\n PILL_GROUP: 'pill-group',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const PILL_GROUP_DATA_TESTID = slotObjectToDataTestIds(DSPillV2Name, PILL_GROUP_SLOTS);\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,+BAA+B;AACxC,SAAS,oBAAoB;AAKtB,MAAM,kBAAkB;AAGxB,MAAM,mBAAmB;AAAA,EAC9B,YAAY;AACd;AAGO,MAAM,yBAAyB,wBAAwB,cAAc,gBAAgB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { DSPillGroupV2, DSPillGroupV2WithSchema } from "./DSPillGroup.js";
3
+ import { PillGroupContext } from "./PillGroupCTX.js";
4
+ import { DSPillGroupName, PILL_GROUP_DATA_TESTID } from "./constants/index.js";
5
+ export {
6
+ DSPillGroupName,
7
+ DSPillGroupV2,
8
+ PillGroupContext as DSPillGroupV2Context,
9
+ DSPillGroupV2WithSchema,
10
+ PILL_GROUP_DATA_TESTID
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPillGroup/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSPillGroupV2, DSPillGroupV2WithSchema } from './DSPillGroup.js';\nexport { PillGroupContext as DSPillGroupV2Context } from './PillGroupCTX.js';\nexport { DSPillGroupName, PILL_GROUP_DATA_TESTID } from './constants/index.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,eAAe,+BAA+B;AACvD,SAA6B,wBAA4B;AACzD,SAAS,iBAAiB,8BAA8B;",
6
+ "names": []
7
+ }