opus-toolkit-components 1.6.1 → 1.6.2

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.
@@ -108,26 +108,6 @@ module.exports = function (list, options) {
108
108
 
109
109
  /***/ }),
110
110
 
111
- /***/ 113:
112
- /***/ ((module) => {
113
-
114
-
115
-
116
- /* istanbul ignore next */
117
- function styleTagTransform(css, styleElement) {
118
- if (styleElement.styleSheet) {
119
- styleElement.styleSheet.cssText = css;
120
- } else {
121
- while (styleElement.firstChild) {
122
- styleElement.removeChild(styleElement.firstChild);
123
- }
124
- styleElement.appendChild(document.createTextNode(css));
125
- }
126
- }
127
- module.exports = styleTagTransform;
128
-
129
- /***/ }),
130
-
131
111
  /***/ 126:
132
112
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
133
113
 
@@ -397,24 +377,22 @@ if (true) {
397
377
  /***/ }),
398
378
 
399
379
  /***/ 494:
400
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
401
-
402
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
403
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
404
- /* harmony export */ });
405
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
406
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
407
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
408
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
409
- // Imports
380
+ /***/ ((module) => {
410
381
 
411
382
 
412
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
413
- // Module
414
- ___CSS_LOADER_EXPORT___.push([module.id, `.wrapper{width:100%}.wrapper table{width:100%}.wrapper table thead th:first-of-type{border-top-left-radius:8px}.wrapper table thead th:last-of-type{border-top-right-radius:8px}.wrapper table tbody tr:last-of-type td:first-of-type{border-bottom-left-radius:8px}.wrapper table tbody tr:last-of-type td:last-of-type{border-bottom-right-radius:8px}@media(max-width: 640px){.wrapper td::before{content:attr(data-label);display:block;font-weight:600;text-transform:uppercase;margin-bottom:.25rem;color:var(--color-text-strong)}.wrapper tr{display:block}.wrapper td{display:block}.wrapper thead{display:none}.wrapper button{width:100%}}`, "",{"version":3,"sources":["webpack://./src/components/Tables/table.scss"],"names":[],"mappings":"AAAA,SACE,UAAA,CAEA,eACE,UAAA,CAII,sCACE,0BAAA,CAGF,qCACE,2BAAA,CASE,sDACE,6BAAA,CAGF,qDACE,8BAAA,CAQZ,yBACE,oBACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CACA,oBAAA,CACA,8BAAA,CAGF,YACE,aAAA,CAGF,YACE,aAAA,CAGF,eACE,YAAA,CAGF,gBACE,UAAA,CAAA","sourcesContent":[".wrapper {\r\n width: 100%;\r\n\r\n table {\r\n width: 100%;\r\n\r\n thead {\r\n th {\r\n &:first-of-type {\r\n border-top-left-radius: 8px;\r\n }\r\n\r\n &:last-of-type {\r\n border-top-right-radius: 8px;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:last-of-type {\r\n td {\r\n &:first-of-type {\r\n border-bottom-left-radius: 8px;\r\n }\r\n\r\n &:last-of-type {\r\n border-bottom-right-radius: 8px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 640px) {\r\n td::before {\r\n content: attr(data-label);\r\n display: block;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n margin-bottom: 0.25rem;\r\n color: var(--color-text-strong);\r\n }\r\n\r\n tr {\r\n display: block;\r\n }\r\n\r\n td {\r\n display: block;\r\n }\r\n\r\n thead {\r\n display: none;\r\n }\r\n\r\n button {\r\n width: 100%;\r\n }\r\n }\r\n}"],"sourceRoot":""}]);
415
- // Exports
416
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
417
383
 
384
+ /* istanbul ignore next */
385
+ function styleTagTransform(css, styleElement) {
386
+ if (styleElement.styleSheet) {
387
+ styleElement.styleSheet.cssText = css;
388
+ } else {
389
+ while (styleElement.firstChild) {
390
+ styleElement.removeChild(styleElement.firstChild);
391
+ }
392
+ styleElement.appendChild(document.createTextNode(css));
393
+ }
394
+ }
395
+ module.exports = styleTagTransform;
418
396
 
419
397
  /***/ }),
420
398
 
@@ -561,6 +539,28 @@ ___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names
561
539
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
562
540
 
563
541
 
542
+ /***/ }),
543
+
544
+ /***/ 875:
545
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
546
+
547
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
548
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
549
+ /* harmony export */ });
550
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(354);
551
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
552
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
553
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
554
+ // Imports
555
+
556
+
557
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
558
+ // Module
559
+ ___CSS_LOADER_EXPORT___.push([module.id, `.wrapper{width:100%}.wrapper table{width:100%}.wrapper table thead th:first-of-type{border-top-left-radius:8px}.wrapper table thead th:last-of-type{border-top-right-radius:8px}.wrapper table tbody tr:last-of-type td:first-of-type{border-bottom-left-radius:8px}.wrapper table tbody tr:last-of-type td:last-of-type{border-bottom-right-radius:8px}@media(max-width: 640px){.wrapper td::before{content:attr(data-label);display:block;font-weight:600;text-transform:uppercase;margin-bottom:.25rem;color:var(--color-text-strong)}.wrapper tr{display:block}.wrapper td{display:block}.wrapper thead{display:none}.wrapper button{width:100%}}`, "",{"version":3,"sources":["webpack://./src/components/Tables/table.scss"],"names":[],"mappings":"AAAA,SACE,UAAA,CAEA,eACE,UAAA,CAII,sCACE,0BAAA,CAGF,qCACE,2BAAA,CASE,sDACE,6BAAA,CAGF,qDACE,8BAAA,CAQZ,yBACE,oBACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CACA,oBAAA,CACA,8BAAA,CAGF,YACE,aAAA,CAGF,YACE,aAAA,CAGF,eACE,YAAA,CAGF,gBACE,UAAA,CAAA","sourcesContent":[".wrapper {\r\n width: 100%;\r\n\r\n table {\r\n width: 100%;\r\n\r\n thead {\r\n th {\r\n &:first-of-type {\r\n border-top-left-radius: 8px;\r\n }\r\n\r\n &:last-of-type {\r\n border-top-right-radius: 8px;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:last-of-type {\r\n td {\r\n &:first-of-type {\r\n border-bottom-left-radius: 8px;\r\n }\r\n\r\n &:last-of-type {\r\n border-bottom-right-radius: 8px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 640px) {\r\n td::before {\r\n content: attr(data-label);\r\n display: block;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n margin-bottom: 0.25rem;\r\n color: var(--color-text-strong);\r\n }\r\n\r\n tr {\r\n display: block;\r\n }\r\n\r\n td {\r\n display: block;\r\n }\r\n\r\n thead {\r\n display: none;\r\n }\r\n\r\n button {\r\n width: 100%;\r\n }\r\n }\r\n}"],"sourceRoot":""}]);
560
+ // Exports
561
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
562
+
563
+
564
564
  /***/ }),
565
565
 
566
566
  /***/ 908:
@@ -695,17 +695,23 @@ __webpack_require__.r(__webpack_exports__);
695
695
  // EXPORTS
696
696
  __webpack_require__.d(__webpack_exports__, {
697
697
  Accordion: () => (/* reexport */ Accordions_Accordion),
698
+ BarLayout: () => (/* reexport */ BarLayout_BarLayout),
698
699
  Button: () => (/* reexport */ Button),
699
700
  Card: () => (/* reexport */ Card),
700
701
  Checkbox: () => (/* reexport */ Checkbox),
701
702
  CookieBanner: () => (/* reexport */ Cookie),
702
703
  DatePicker: () => (/* reexport */ DatePicker),
703
704
  Dropdown: () => (/* reexport */ Dropdown),
705
+ Footer: () => (/* reexport */ Footer_Footer),
706
+ Header: () => (/* reexport */ Header_Header),
707
+ Icon: () => (/* reexport */ Icon_Icon),
704
708
  Input: () => (/* reexport */ Inputs_Input),
705
709
  Loader: () => (/* reexport */ Loader),
706
710
  Modal: () => (/* reexport */ Modals_Modal),
707
711
  Navbar: () => (/* reexport */ Navbar_Navbar),
712
+ PageTemplate: () => (/* reexport */ PageTemplate_PageTemplate),
708
713
  Pill: () => (/* reexport */ Pills_Pill),
714
+ ProfileCard: () => (/* reexport */ ProfileCard),
709
715
  RadioButton: () => (/* reexport */ Radios_RadioButton),
710
716
  Sidebar: () => (/* reexport */ Sidebar),
711
717
  Table: () => (/* reexport */ Table),
@@ -1130,35 +1136,35 @@ const statusClasses = {
1130
1136
  notice: "bg-[--color-util-yellow] text-[--color-black]"
1131
1137
  };
1132
1138
 
1133
- /**
1134
- * Allowed pill status values.
1135
- * @typedef {'primary'|'danger'|'warning'|'success'|'info'|'notice'} PillStatus
1139
+ /**
1140
+ * Allowed pill status values.
1141
+ * @typedef {'primary'|'danger'|'warning'|'success'|'info'|'notice'} PillStatus
1136
1142
  */
1137
1143
 
1138
- /**
1139
- * Icon component type — any valid SVG React component.
1140
- * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
1144
+ /**
1145
+ * Icon component type — any valid SVG React component.
1146
+ * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
1141
1147
  */
1142
1148
 
1143
- /**
1144
- * Props for the Pill component.
1145
- *
1146
- * @typedef {Object} PillProps
1147
- * @property {string} [text='']
1148
- * Text displayed inside the pill.
1149
- *
1150
- * @property {PillStatus} [status='info']
1151
- * Determines visual colors of the pill.
1152
- *
1153
- * @property {string} [className]
1154
- * Additional class names.
1155
- *
1156
- * @property {IconComponent} [icon]
1157
- * Optional icon displayed before the text.
1149
+ /**
1150
+ * Props for the Pill component.
1151
+ *
1152
+ * @typedef {Object} PillProps
1153
+ * @property {string} [text='']
1154
+ * Text displayed inside the pill.
1155
+ *
1156
+ * @property {PillStatus} [status='info']
1157
+ * Determines visual colors of the pill.
1158
+ *
1159
+ * @property {string} [className]
1160
+ * Additional class names.
1161
+ *
1162
+ * @property {IconComponent} [icon]
1163
+ * Optional icon displayed before the text.
1158
1164
  */
1159
1165
 
1160
- /**
1161
- * @param {PillProps & React.HTMLAttributes<HTMLSpanElement>} props
1166
+ /**
1167
+ * @param {PillProps & React.HTMLAttributes<HTMLSpanElement>} props
1162
1168
  */
1163
1169
 
1164
1170
  const Pill = _ref => {
@@ -1226,47 +1232,47 @@ const elementMap = {
1226
1232
  label: "label"
1227
1233
  };
1228
1234
 
1229
- /**
1230
- * Allowed typographical variants for the Text component.
1231
- * @typedef {'h1'|'h2'|'h3'|'h4'|'h5'|'h6'|'body'|'small'|'caption'|'label'} TextVariant
1235
+ /**
1236
+ * Allowed typographical variants for the Text component.
1237
+ * @typedef {'h1'|'h2'|'h3'|'h4'|'h5'|'h6'|'body'|'small'|'caption'|'label'} TextVariant
1232
1238
  */
1233
1239
 
1234
- /**
1235
- * Polymorphic HTML element types supported in `as`.
1236
- * @typedef {keyof JSX.IntrinsicElements | React.ComponentType<any>} TextAs
1240
+ /**
1241
+ * Polymorphic HTML element types supported in `as`.
1242
+ * @typedef {keyof JSX.IntrinsicElements | React.ComponentType<any>} TextAs
1237
1243
  */
1238
1244
 
1239
- /**
1240
- * Props for the Text component.
1241
- *
1242
- * @typedef {Object} TextProps
1243
- *
1244
- * @property {TextVariant} [variant='body']
1245
- * Controls the typography style.
1246
- *
1247
- * @property {TextAs} [as]
1248
- * Optional override for the underlying HTML element.
1249
- *
1250
- * @property {string} [className]
1251
- * Extra CSS classes.
1252
- *
1253
- * @property {string} [color='text-[--color-text-strong]']
1254
- * Tailwind/text color classes.
1255
- *
1256
- * @property {React.ReactNode} [children]
1257
- * Text content.
1258
- *
1259
- * @property {string} [name]
1260
- * Name used to generate `data-cy`.
1261
- *
1262
- * @property {string} [dataCy]
1263
- * Optional override for auto-generated data-cy attribute.
1245
+ /**
1246
+ * Props for the Text component.
1247
+ *
1248
+ * @typedef {Object} TextProps
1249
+ *
1250
+ * @property {TextVariant} [variant='body']
1251
+ * Controls the typography style.
1252
+ *
1253
+ * @property {TextAs} [as]
1254
+ * Optional override for the underlying HTML element.
1255
+ *
1256
+ * @property {string} [className]
1257
+ * Extra CSS classes.
1258
+ *
1259
+ * @property {string} [color='text-[--color-text-strong]']
1260
+ * Tailwind/text color classes.
1261
+ *
1262
+ * @property {React.ReactNode} [children]
1263
+ * Text content.
1264
+ *
1265
+ * @property {string} [name]
1266
+ * Name used to generate `data-cy`.
1267
+ *
1268
+ * @property {string} [dataCy]
1269
+ * Optional override for auto-generated data-cy attribute.
1264
1270
  */
1265
1271
 
1266
- /**
1267
- * Text component with typography variants and polymorphic rendering.
1268
- *
1269
- * @param {TextProps & React.HTMLAttributes<HTMLElement>} props
1272
+ /**
1273
+ * Text component with typography variants and polymorphic rendering.
1274
+ *
1275
+ * @param {TextProps & React.HTMLAttributes<HTMLElement>} props
1270
1276
  */
1271
1277
 
1272
1278
  function Text(_ref) {
@@ -1298,54 +1304,54 @@ function Text(_ref) {
1298
1304
 
1299
1305
 
1300
1306
 
1301
- /**
1302
- * @typedef {Object} AccordionProps
1303
- *
1304
- * @property {string | React.ReactNode} title
1305
- * Title rendered inside the header.
1306
- *
1307
- * @property {Function} [handleToggle]
1308
- * Optional external toggle handler called with (index).
1309
- *
1310
- * @property {number} [activeIndex]
1311
- * Controlled active index. If provided, the accordion becomes controlled.
1312
- *
1313
- * @property {number} index
1314
- * This accordion's position in a list.
1315
- *
1316
- * @property {boolean} [isPreview]
1317
- * If true, accordion goes into preview mode.
1318
- *
1319
- * @property {boolean} [isLocked]
1320
- * If true, accordion cannot toggle.
1321
- *
1322
- * @property {Function} [onExitPreview]
1323
- * Callback fired when exiting preview mode.
1324
- *
1325
- * @property {React.ReactNode} content
1326
- * Accordion expanded content.
1327
- *
1328
- * @property {React.ReactNode} [preview]
1329
- * Rendered when in preview mode and not active.
1330
- *
1331
- * @property {boolean} [isPill]
1332
- * Whether to show a status pill.
1333
- *
1334
- * @property {string} [pillText]
1335
- * Label inside the pill.
1336
- *
1337
- * @property {'success'|'warning'|'error'|'info'|string} [pillStatus]
1338
- * Visual status for the pill.
1339
- *
1340
- * @property {React.ReactNode} [pillIcon]
1341
- * Optional icon inside the pill.
1342
- *
1343
- * @property {boolean} [disabled]
1344
- * Disables interaction with the accordion.
1307
+ /**
1308
+ * @typedef {Object} AccordionProps
1309
+ *
1310
+ * @property {string | React.ReactNode} title
1311
+ * Title rendered inside the header.
1312
+ *
1313
+ * @property {Function} [handleToggle]
1314
+ * Optional external toggle handler called with (index).
1315
+ *
1316
+ * @property {number} [activeIndex]
1317
+ * Controlled active index. If provided, the accordion becomes controlled.
1318
+ *
1319
+ * @property {number} index
1320
+ * This accordion's position in a list.
1321
+ *
1322
+ * @property {boolean} [isPreview]
1323
+ * If true, accordion goes into preview mode.
1324
+ *
1325
+ * @property {boolean} [isLocked]
1326
+ * If true, accordion cannot toggle.
1327
+ *
1328
+ * @property {Function} [onExitPreview]
1329
+ * Callback fired when exiting preview mode.
1330
+ *
1331
+ * @property {React.ReactNode} content
1332
+ * Accordion expanded content.
1333
+ *
1334
+ * @property {React.ReactNode} [preview]
1335
+ * Rendered when in preview mode and not active.
1336
+ *
1337
+ * @property {boolean} [isPill]
1338
+ * Whether to show a status pill.
1339
+ *
1340
+ * @property {string} [pillText]
1341
+ * Label inside the pill.
1342
+ *
1343
+ * @property {'success'|'warning'|'error'|'info'|string} [pillStatus]
1344
+ * Visual status for the pill.
1345
+ *
1346
+ * @property {React.ReactNode} [pillIcon]
1347
+ * Optional icon inside the pill.
1348
+ *
1349
+ * @property {boolean} [disabled]
1350
+ * Disables interaction with the accordion.
1345
1351
  */
1346
1352
 
1347
- /**
1348
- * @param {AccordionProps} props
1353
+ /**
1354
+ * @param {AccordionProps} props
1349
1355
  */
1350
1356
 
1351
1357
  const Accordion = _ref => {
@@ -1449,7 +1455,7 @@ var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(
1449
1455
  var insertStyleElement = __webpack_require__(540);
1450
1456
  var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
1451
1457
  // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
1452
- var styleTagTransform = __webpack_require__(113);
1458
+ var styleTagTransform = __webpack_require__(494);
1453
1459
  var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
1454
1460
  // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/components/Buttons/button.scss
1455
1461
  var Buttons_button = __webpack_require__(833);
@@ -4267,80 +4273,80 @@ function AiTwotoneWarning (props) {
4267
4273
  // Import a spinner icon
4268
4274
 
4269
4275
 
4270
- /**
4271
- * @typedef {'primary'|'secondary'|'tertiary'|'outline'|'destructive'} ButtonRank
4276
+ /**
4277
+ * @typedef {'primary'|'secondary'|'tertiary'|'outline'|'destructive'} ButtonRank
4272
4278
  */
4273
4279
 
4274
- /**
4275
- * @typedef {'default'|'disabled'} ButtonState
4280
+ /**
4281
+ * @typedef {'default'|'disabled'} ButtonState
4276
4282
  */
4277
4283
 
4278
- /**
4279
- * @typedef {'sm'|'md'|'lg'|'xl'|string} ButtonSize
4280
- * (Supports custom tailwind text sizes too)
4284
+ /**
4285
+ * @typedef {'sm'|'md'|'lg'|'xl'|string} ButtonSize
4286
+ * (Supports custom tailwind text sizes too)
4281
4287
  */
4282
4288
 
4283
- /**
4284
- * Icon component type from react-icons or your own components
4285
- * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
4289
+ /**
4290
+ * Icon component type from react-icons or your own components
4291
+ * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
4286
4292
  */
4287
4293
 
4288
- /**
4289
- * @typedef {Object} ButtonProps
4290
- *
4291
- * @property {'button'|'submit'|'reset'} [type]
4292
- * Native button type.
4293
- *
4294
- * @property {ButtonRank} [rank]
4295
- * Visual rank: primary, secondary, etc.
4296
- *
4297
- * @property {ButtonState} [state]
4298
- * Current state (default, disabled).
4299
- *
4300
- * @property {string} [text]
4301
- * Text shown inside the button (ignored when isSaving is true).
4302
- *
4303
- * @property {ButtonSize} [size]
4304
- * Tailwind text size (sm, md, lg, xl).
4305
- *
4306
- * @property {string} [name]
4307
- * Standard HTML name attribute + for data-cy.
4308
- *
4309
- * @property {string} [dataCy]
4310
- * Override for auto-generated test selector.
4311
- *
4312
- * @property {number} [tabIndex]
4313
- *
4314
- * @property {boolean} [isFullWidth]
4315
- * Expand to full container width.
4316
- *
4317
- * @property {IconComponent} [icon]
4318
- * Optional icon component (left or right).
4319
- *
4320
- * @property {'left'|'right'} [iconPosition]
4321
- * Position of icon.
4322
- *
4323
- * @property {boolean} [isIconAnimated]
4324
- * Enables subtle translate animation on hover.
4325
- *
4326
- * @property {boolean} [isSaving]
4327
- * Shows a spinner and disables all interaction.
4328
- *
4329
- * @property {string} [savingText]
4330
- * Text shown when isSaving = true.
4331
- *
4332
- * @property {string} [className]
4333
- * Extra custom classes.
4334
- *
4335
- * @property {string} [title]
4336
- * Adds accessible label / tooltip.
4337
- *
4338
- * @property {(event: React.MouseEvent<HTMLButtonElement>) => void} [onClick]
4339
- * Click handler. Not called during saving or disabled state.
4294
+ /**
4295
+ * @typedef {Object} ButtonProps
4296
+ *
4297
+ * @property {'button'|'submit'|'reset'} [type]
4298
+ * Native button type.
4299
+ *
4300
+ * @property {ButtonRank} [rank]
4301
+ * Visual rank: primary, secondary, etc.
4302
+ *
4303
+ * @property {ButtonState} [state]
4304
+ * Current state (default, disabled).
4305
+ *
4306
+ * @property {string} [text]
4307
+ * Text shown inside the button (ignored when isSaving is true).
4308
+ *
4309
+ * @property {ButtonSize} [size]
4310
+ * Tailwind text size (sm, md, lg, xl).
4311
+ *
4312
+ * @property {string} [name]
4313
+ * Standard HTML name attribute + for data-cy.
4314
+ *
4315
+ * @property {string} [dataCy]
4316
+ * Override for auto-generated test selector.
4317
+ *
4318
+ * @property {number} [tabIndex]
4319
+ *
4320
+ * @property {boolean} [isFullWidth]
4321
+ * Expand to full container width.
4322
+ *
4323
+ * @property {IconComponent} [icon]
4324
+ * Optional icon component (left or right).
4325
+ *
4326
+ * @property {'left'|'right'} [iconPosition]
4327
+ * Position of icon.
4328
+ *
4329
+ * @property {boolean} [isIconAnimated]
4330
+ * Enables subtle translate animation on hover.
4331
+ *
4332
+ * @property {boolean} [isSaving]
4333
+ * Shows a spinner and disables all interaction.
4334
+ *
4335
+ * @property {string} [savingText]
4336
+ * Text shown when isSaving = true.
4337
+ *
4338
+ * @property {string} [className]
4339
+ * Extra custom classes.
4340
+ *
4341
+ * @property {string} [title]
4342
+ * Adds accessible label / tooltip.
4343
+ *
4344
+ * @property {(event: React.MouseEvent<HTMLButtonElement>) => void} [onClick]
4345
+ * Click handler. Not called during saving or disabled state.
4340
4346
  */
4341
4347
 
4342
- /**
4343
- * @param {ButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>} props
4348
+ /**
4349
+ * @param {ButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>} props
4344
4350
  */
4345
4351
 
4346
4352
  function Button(_ref) {
@@ -4417,29 +4423,29 @@ function clsx_r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;e
4417
4423
 
4418
4424
 
4419
4425
 
4420
- /**
4421
- * The visual intent / theme of the Card.
4422
- * @typedef {'default'|'info'|'warning'|'success'|'error'|'brand'|'brandSecondary'} CardIntent
4426
+ /**
4427
+ * The visual intent / theme of the Card.
4428
+ * @typedef {'default'|'info'|'warning'|'success'|'error'|'brand'|'brandSecondary'} CardIntent
4423
4429
  */
4424
4430
 
4425
- /**
4426
- * Props for the Card component.
4427
- *
4428
- * @typedef {Object} CardProps
4429
- * @property {CardIntent} [intent]
4430
- * Controls the background + text color theme of the card.
4431
- *
4432
- * @property {string} [className]
4433
- * Additional custom class names.
4434
- *
4435
- * @property {React.ReactNode} [children]
4436
- * Card content.
4431
+ /**
4432
+ * Props for the Card component.
4433
+ *
4434
+ * @typedef {Object} CardProps
4435
+ * @property {CardIntent} [intent]
4436
+ * Controls the background + text color theme of the card.
4437
+ *
4438
+ * @property {string} [className]
4439
+ * Additional custom class names.
4440
+ *
4441
+ * @property {React.ReactNode} [children]
4442
+ * Card content.
4437
4443
  */
4438
4444
 
4439
- /**
4440
- * Card component with typed JSDoc for TS autocomplete.
4441
- *
4442
- * @param {CardProps & React.HTMLAttributes<HTMLDivElement>} props
4445
+ /**
4446
+ * Card component with typed JSDoc for TS autocomplete.
4447
+ *
4448
+ * @param {CardProps & React.HTMLAttributes<HTMLDivElement>} props
4443
4449
  */
4444
4450
 
4445
4451
  function Card(_ref) {
@@ -4475,75 +4481,75 @@ function Input_toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var
4475
4481
 
4476
4482
 
4477
4483
 
4478
- /**
4479
- * Icon component type — any React component that renders an SVG.
4480
- * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
4484
+ /**
4485
+ * Icon component type — any React component that renders an SVG.
4486
+ * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
4481
4487
  */
4482
4488
 
4483
- /**
4484
- * Custom component type for supplementary UI below input.
4485
- * Must be a React component.
4486
- * @typedef {(props: any) => JSX.Element} CustomComponent
4489
+ /**
4490
+ * Custom component type for supplementary UI below input.
4491
+ * Must be a React component.
4492
+ * @typedef {(props: any) => JSX.Element} CustomComponent
4487
4493
  */
4488
4494
 
4489
- /**
4490
- * Input component props.
4491
- *
4492
- * @typedef {Object} InputProps
4493
- *
4494
- * @property {string} label
4495
- * Label displayed above the input.
4496
- *
4497
- * @property {string} [placeholder]
4498
- *
4499
- * @property {'text'|'email'|'password'|'number'|'search'|'tel'|'url'|'date'|'datetime-local'|'month'|'time'|'week'|string} [type]
4500
- * HTML input type.
4501
- *
4502
- * @property {string|number} [tabIndex]
4503
- *
4504
- * @property {string} [title]
4505
- *
4506
- * @property {string} [name]
4507
- *
4508
- * @property {boolean} [isValid]
4509
- * Whether the field is valid — shows error text if false.
4510
- *
4511
- * @property {string} [errorMessage]
4512
- *
4513
- * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange]
4514
- * Change handler using your preferred full event signature.
4515
- *
4516
- * @property {string} [className]
4517
- *
4518
- * @property {string|number} [value]
4519
- *
4520
- * @property {IconComponent} [Icon]
4521
- *
4522
- * @property {'left'|'right'} [iconPosition]
4523
- * Icon placement inside the input.
4524
- *
4525
- * @property {boolean} [isAnimated]
4526
- * Enables focus animation on the icon.
4527
- *
4528
- * @property {boolean} [required]
4529
- *
4530
- * @property {boolean} [disabled]
4531
- *
4532
- * @property {boolean} [shouldRenderCustomComponent]
4533
- *
4534
- * @property {CustomComponent} [customComponent]
4535
- *
4536
- * @property {Object<string, any>} [customComponentProps]
4537
- *
4538
- * @property {string} [dataCy]
4539
- * Override for auto-generated test selector.
4495
+ /**
4496
+ * Input component props.
4497
+ *
4498
+ * @typedef {Object} InputProps
4499
+ *
4500
+ * @property {string} label
4501
+ * Label displayed above the input.
4502
+ *
4503
+ * @property {string} [placeholder]
4504
+ *
4505
+ * @property {'text'|'email'|'password'|'number'|'search'|'tel'|'url'|'date'|'datetime-local'|'month'|'time'|'week'|string} [type]
4506
+ * HTML input type.
4507
+ *
4508
+ * @property {string|number} [tabIndex]
4509
+ *
4510
+ * @property {string} [title]
4511
+ *
4512
+ * @property {string} [name]
4513
+ *
4514
+ * @property {boolean} [isValid]
4515
+ * Whether the field is valid — shows error text if false.
4516
+ *
4517
+ * @property {string} [errorMessage]
4518
+ *
4519
+ * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange]
4520
+ * Change handler using your preferred full event signature.
4521
+ *
4522
+ * @property {string} [className]
4523
+ *
4524
+ * @property {string|number} [value]
4525
+ *
4526
+ * @property {IconComponent} [Icon]
4527
+ *
4528
+ * @property {'left'|'right'} [iconPosition]
4529
+ * Icon placement inside the input.
4530
+ *
4531
+ * @property {boolean} [isAnimated]
4532
+ * Enables focus animation on the icon.
4533
+ *
4534
+ * @property {boolean} [required]
4535
+ *
4536
+ * @property {boolean} [disabled]
4537
+ *
4538
+ * @property {boolean} [shouldRenderCustomComponent]
4539
+ *
4540
+ * @property {CustomComponent} [customComponent]
4541
+ *
4542
+ * @property {Object<string, any>} [customComponentProps]
4543
+ *
4544
+ * @property {string} [dataCy]
4545
+ * Override for auto-generated test selector.
4540
4546
  */
4541
4547
 
4542
- /**
4543
- * ForwardRef Input component with complete JSDoc typings.
4544
- *
4545
- * @param {InputProps & React.InputHTMLAttributes<HTMLInputElement>} props
4546
- * @param {React.Ref<HTMLInputElement>} ref
4548
+ /**
4549
+ * ForwardRef Input component with complete JSDoc typings.
4550
+ *
4551
+ * @param {InputProps & React.InputHTMLAttributes<HTMLInputElement>} props
4552
+ * @param {React.Ref<HTMLInputElement>} ref
4547
4553
  */
4548
4554
 
4549
4555
  const Input = /*#__PURE__*/(0,external_commonjs_react_commonjs2_react_amd_react_root_React_.forwardRef)((_ref, ref) => {
@@ -4697,50 +4703,50 @@ var datepicker_update = injectStylesIntoStyleTag_default()(datepicker/* default
4697
4703
 
4698
4704
 
4699
4705
 
4700
- /**
4701
- * Custom change event type used by your date components.
4702
- * @typedef {{ target: { name: string, value: string } }} DatePickerChangeEvent
4706
+ /**
4707
+ * Custom change event type used by your date components.
4708
+ * @typedef {{ target: { name: string, value: string } }} DatePickerChangeEvent
4703
4709
  */
4704
4710
 
4705
- /**
4706
- * Props for DatePicker.
4707
- *
4708
- * @typedef {Object} DatePickerProps
4709
- *
4710
- * @property {string} [initialDate]
4711
- * Initial date value (ISO or human-readable). Converted internally.
4712
- *
4713
- * @property {string} [label]
4714
- * Label above the input.
4715
- *
4716
- * @property {boolean} [isValid]
4717
- * Controls validation styles + error message display.
4718
- *
4719
- * @property {string} [errorMessage]
4720
- * Message shown when isValid = false.
4721
- *
4722
- * @property {string} [name]
4723
- * Input field name and event target name.
4724
- *
4725
- * @property {(event: DatePickerChangeEvent) => void} [onChange]
4726
- * Custom event format with `event.target.name` & `event.target.value` in ISO.
4727
- *
4728
- * @property {string} [value]
4729
- * External controlled value (ISO or slash-format). Normalized automatically.
4730
- *
4731
- * @property {string} [className]
4732
- *
4733
- * @property {string} [title]
4734
- *
4735
- * @property {boolean} [required]
4736
- *
4737
- * @property {string} [dataCy]
4738
- *
4739
- * @property {boolean} [disabled]
4711
+ /**
4712
+ * Props for DatePicker.
4713
+ *
4714
+ * @typedef {Object} DatePickerProps
4715
+ *
4716
+ * @property {string} [initialDate]
4717
+ * Initial date value (ISO or human-readable). Converted internally.
4718
+ *
4719
+ * @property {string} [label]
4720
+ * Label above the input.
4721
+ *
4722
+ * @property {boolean} [isValid]
4723
+ * Controls validation styles + error message display.
4724
+ *
4725
+ * @property {string} [errorMessage]
4726
+ * Message shown when isValid = false.
4727
+ *
4728
+ * @property {string} [name]
4729
+ * Input field name and event target name.
4730
+ *
4731
+ * @property {(event: DatePickerChangeEvent) => void} [onChange]
4732
+ * Custom event format with `event.target.name` & `event.target.value` in ISO.
4733
+ *
4734
+ * @property {string} [value]
4735
+ * External controlled value (ISO or slash-format). Normalized automatically.
4736
+ *
4737
+ * @property {string} [className]
4738
+ *
4739
+ * @property {string} [title]
4740
+ *
4741
+ * @property {boolean} [required]
4742
+ *
4743
+ * @property {string} [dataCy]
4744
+ *
4745
+ * @property {boolean} [disabled]
4740
4746
  */
4741
4747
 
4742
- /**
4743
- * @param {DatePickerProps & React.HTMLAttributes<HTMLDivElement>} props
4748
+ /**
4749
+ * @param {DatePickerProps & React.HTMLAttributes<HTMLDivElement>} props
4744
4750
  */
4745
4751
 
4746
4752
  function DatePicker(_ref) {
@@ -4854,58 +4860,58 @@ function DatePicker(_ref) {
4854
4860
 
4855
4861
 
4856
4862
 
4857
- /**
4858
- * A single radio option.
4859
- * @typedef {Object} RadioOption
4860
- * @property {string|number} value
4861
- * @property {string} label
4863
+ /**
4864
+ * A single radio option.
4865
+ * @typedef {Object} RadioOption
4866
+ * @property {string|number} value
4867
+ * @property {string} label
4862
4868
  */
4863
4869
 
4864
- /**
4865
- * Custom event format used by your form components.
4866
- * @typedef {{ target: { name: string, value: string|number } }} RadioChangeEvent
4870
+ /**
4871
+ * Custom event format used by your form components.
4872
+ * @typedef {{ target: { name: string, value: string|number } }} RadioChangeEvent
4867
4873
  */
4868
4874
 
4869
- /**
4870
- * Props for the RadioButton component.
4871
- *
4872
- * @typedef {Object} RadioButtonProps
4873
- *
4874
- * @property {string} label
4875
- * Form label above the radio group.
4876
- *
4877
- * @property {RadioOption[]} [options]
4878
- * Array of selectable radio items.
4879
- *
4880
- * @property {string} name
4881
- * Name of the radio group (required for grouping).
4882
- *
4883
- * @property {string|number} [value]
4884
- * Currently selected value.
4885
- *
4886
- * @property {(event: RadioChangeEvent) => void} [onChange]
4887
- * Custom event handler following your design system.
4888
- *
4889
- * @property {string} [className]
4890
- *
4891
- * @property {string|number} [tabIndex]
4892
- *
4893
- * @property {string} [title]
4894
- *
4895
- * @property {boolean} [isValid]
4896
- * Controls error message + styles.
4897
- *
4898
- * @property {string} [errorMessage]
4899
- *
4900
- * @property {boolean} [required]
4901
- *
4902
- * @property {string} [dataCy]
4903
- *
4904
- * @property {boolean} [disabled]
4875
+ /**
4876
+ * Props for the RadioButton component.
4877
+ *
4878
+ * @typedef {Object} RadioButtonProps
4879
+ *
4880
+ * @property {string} label
4881
+ * Form label above the radio group.
4882
+ *
4883
+ * @property {RadioOption[]} [options]
4884
+ * Array of selectable radio items.
4885
+ *
4886
+ * @property {string} name
4887
+ * Name of the radio group (required for grouping).
4888
+ *
4889
+ * @property {string|number} [value]
4890
+ * Currently selected value.
4891
+ *
4892
+ * @property {(event: RadioChangeEvent) => void} [onChange]
4893
+ * Custom event handler following your design system.
4894
+ *
4895
+ * @property {string} [className]
4896
+ *
4897
+ * @property {string|number} [tabIndex]
4898
+ *
4899
+ * @property {string} [title]
4900
+ *
4901
+ * @property {boolean} [isValid]
4902
+ * Controls error message + styles.
4903
+ *
4904
+ * @property {string} [errorMessage]
4905
+ *
4906
+ * @property {boolean} [required]
4907
+ *
4908
+ * @property {string} [dataCy]
4909
+ *
4910
+ * @property {boolean} [disabled]
4905
4911
  */
4906
4912
 
4907
- /**
4908
- * @param {RadioButtonProps & React.HTMLAttributes<HTMLDivElement>} props
4913
+ /**
4914
+ * @param {RadioButtonProps & React.HTMLAttributes<HTMLDivElement>} props
4909
4915
  */
4910
4916
 
4911
4917
  const RadioButton = _ref => {
@@ -5002,47 +5008,47 @@ RadioButton.displayName = "RadioButton";
5002
5008
 
5003
5009
 
5004
5010
 
5005
- /**
5006
- * Custom change event format used across your form components.
5007
- * Matches your Input / Dropdown / DatePicker pattern.
5008
- *
5009
- * @typedef {{ target: { name: string, value: boolean } }} CheckboxChangeEvent
5011
+ /**
5012
+ * Custom change event format used across your form components.
5013
+ * Matches your Input / Dropdown / DatePicker pattern.
5014
+ *
5015
+ * @typedef {{ target: { name: string, value: boolean } }} CheckboxChangeEvent
5010
5016
  */
5011
5017
 
5012
- /**
5013
- * Props for Checkbox.
5014
- *
5015
- * @typedef {Object} CheckboxProps
5016
- *
5017
- * @property {string} label
5018
- * Label displayed next to the checkbox.
5019
- *
5020
- * @property {string} name
5021
- * Name used in the emitted onChange event.
5022
- *
5023
- * @property {(event: CheckboxChangeEvent) => void} [onChange]
5024
- * Receives `{ target: { name, value } }`.
5025
- *
5026
- * @property {boolean} [value]
5027
- * Whether the checkbox is checked.
5028
- *
5029
- * @property {boolean} [isValid]
5030
- * Controls error styling.
5031
- *
5032
- * @property {string} [errorMessage]
5033
- * Error text shown below the checkbox.
5034
- *
5035
- * @property {boolean} [disabled]
5036
- * Prevents user interaction.
5037
- *
5038
- * @property {string} [title]
5039
- *
5040
- * @property {string} [dataCy]
5041
- * Override test selector.
5018
+ /**
5019
+ * Props for Checkbox.
5020
+ *
5021
+ * @typedef {Object} CheckboxProps
5022
+ *
5023
+ * @property {string} label
5024
+ * Label displayed next to the checkbox.
5025
+ *
5026
+ * @property {string} name
5027
+ * Name used in the emitted onChange event.
5028
+ *
5029
+ * @property {(event: CheckboxChangeEvent) => void} [onChange]
5030
+ * Receives `{ target: { name, value } }`.
5031
+ *
5032
+ * @property {boolean} [value]
5033
+ * Whether the checkbox is checked.
5034
+ *
5035
+ * @property {boolean} [isValid]
5036
+ * Controls error styling.
5037
+ *
5038
+ * @property {string} [errorMessage]
5039
+ * Error text shown below the checkbox.
5040
+ *
5041
+ * @property {boolean} [disabled]
5042
+ * Prevents user interaction.
5043
+ *
5044
+ * @property {string} [title]
5045
+ *
5046
+ * @property {string} [dataCy]
5047
+ * Override test selector.
5042
5048
  */
5043
5049
 
5044
- /**
5045
- * @param {CheckboxProps & React.HTMLAttributes<HTMLDivElement>} props
5050
+ /**
5051
+ * @param {CheckboxProps & React.HTMLAttributes<HTMLDivElement>} props
5046
5052
  */
5047
5053
 
5048
5054
  function Checkbox(_ref) {
@@ -5099,7 +5105,7 @@ function Checkbox(_ref) {
5099
5105
  });
5100
5106
  }
5101
5107
  // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/components/Tables/table.scss
5102
- var table = __webpack_require__(494);
5108
+ var table = __webpack_require__(875);
5103
5109
  ;// ./src/components/Tables/table.scss
5104
5110
 
5105
5111
 
@@ -5131,54 +5137,54 @@ var table_update = injectStylesIntoStyleTag_default()(table/* default */.A, tabl
5131
5137
 
5132
5138
 
5133
5139
 
5134
- /**
5135
- * A column definition for the table.
5136
- *
5137
- * @typedef {Object} TableColumn
5138
- * @property {string} key
5139
- * The key used to read the row value.
5140
- *
5141
- * @property {string} header
5142
- * The column header text.
5143
- *
5144
- * @property {(row: any) => React.ReactNode} [render]
5145
- * Optional custom renderer for this column.
5140
+ /**
5141
+ * A column definition for the table.
5142
+ *
5143
+ * @typedef {Object} TableColumn
5144
+ * @property {string} key
5145
+ * The key used to read the row value.
5146
+ *
5147
+ * @property {string} header
5148
+ * The column header text.
5149
+ *
5150
+ * @property {(row: any) => React.ReactNode} [render]
5151
+ * Optional custom renderer for this column.
5146
5152
  */
5147
5153
 
5148
- /**
5149
- * Props for the Table component.
5150
- *
5151
- * @typedef {Object} TableProps
5152
- *
5153
- * @property {TableColumn[]} [data=[]]
5154
- * Array of column definitions.
5155
- *
5156
- * @property {any[]} [rows=[]]
5157
- * Array of row objects. Row shape is flexible.
5158
- *
5159
- * @property {string} [className='']
5160
- * Extra classes for the outer wrapper.
5161
- *
5162
- * @property {string} [rowClassName='']
5163
- * Classes applied to each table row.
5164
- *
5165
- * @property {string} [cellClassName='']
5166
- * Classes applied to each table cell.
5167
- *
5168
- * @property {string} [headRowClassName='']
5169
- * Classes for the `<thead>` row.
5170
- *
5171
- * @property {string} [headCellClassName='']
5172
- * Classes for header `<th>` cells.
5173
- *
5174
- * @property {(row: any, index: number) => string|number} [rowKeyExtractor]
5175
- * Extractor for row key (defaults to index).
5154
+ /**
5155
+ * Props for the Table component.
5156
+ *
5157
+ * @typedef {Object} TableProps
5158
+ *
5159
+ * @property {TableColumn[]} [data=[]]
5160
+ * Array of column definitions.
5161
+ *
5162
+ * @property {any[]} [rows=[]]
5163
+ * Array of row objects. Row shape is flexible.
5164
+ *
5165
+ * @property {string} [className='']
5166
+ * Extra classes for the outer wrapper.
5167
+ *
5168
+ * @property {string} [rowClassName='']
5169
+ * Classes applied to each table row.
5170
+ *
5171
+ * @property {string} [cellClassName='']
5172
+ * Classes applied to each table cell.
5173
+ *
5174
+ * @property {string} [headRowClassName='']
5175
+ * Classes for the `<thead>` row.
5176
+ *
5177
+ * @property {string} [headCellClassName='']
5178
+ * Classes for header `<th>` cells.
5179
+ *
5180
+ * @property {(row: any, index: number) => string|number} [rowKeyExtractor]
5181
+ * Extractor for row key (defaults to index).
5176
5182
  */
5177
5183
 
5178
- /**
5179
- * Responsive Table with JSDoc types.
5180
- *
5181
- * @param {TableProps & React.HTMLAttributes<HTMLDivElement>} props
5184
+ /**
5185
+ * Responsive Table with JSDoc types.
5186
+ *
5187
+ * @param {TableProps & React.HTMLAttributes<HTMLDivElement>} props
5182
5188
  */
5183
5189
 
5184
5190
  function Table(_ref) {
@@ -13769,66 +13775,66 @@ const esm_ChevronDownIcon_ForwardRef = /*#__PURE__*/ external_commonjs_react_com
13769
13775
 
13770
13776
 
13771
13777
 
13772
- /**
13773
- * @typedef {Object} DropdownItem
13774
- * @property {string} label
13775
- * @property {string|number} value
13778
+ /**
13779
+ * @typedef {Object} DropdownItem
13780
+ * @property {string} label
13781
+ * @property {string|number} value
13776
13782
  */
13777
13783
 
13778
- /**
13779
- * Icon component type — any React SVG component.
13780
- * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
13784
+ /**
13785
+ * Icon component type — any React SVG component.
13786
+ * @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
13781
13787
  */
13782
13788
 
13783
- /**
13784
- * Custom event type emitted by your onChange (matching your pattern).
13785
- * @typedef {{ target: { name: string, value: string|number } }} DropdownChangeEvent
13789
+ /**
13790
+ * Custom event type emitted by your onChange (matching your pattern).
13791
+ * @typedef {{ target: { name: string, value: string|number } }} DropdownChangeEvent
13786
13792
  */
13787
13793
 
13788
- /**
13789
- * @typedef {Object} DropdownProps
13790
- *
13791
- * @property {DropdownItem[]} [items]
13792
- * Array of dropdown options.
13793
- *
13794
- * @property {string} [label]
13795
- * Label above the dropdown.
13796
- *
13797
- * @property {boolean} [isValid]
13798
- * Whether the field is valid.
13799
- *
13800
- * @property {boolean} [required]
13801
- * Whether a * is appended.
13802
- *
13803
- * @property {string} [placeholder]
13804
- *
13805
- * @property {string} [name]
13806
- *
13807
- * @property {string} [className]
13808
- *
13809
- * @property {string} [title]
13810
- *
13811
- * @property {string|number} [tabIndex]
13812
- *
13813
- * @property {(event: DropdownChangeEvent) => void} [onChange]
13814
- * Uses your preferred event signature: `event.target.name` / `event.target.value`.
13815
- *
13816
- * @property {string|number} [value]
13817
- * Selected item value.
13818
- *
13819
- * @property {IconComponent} [Icon]
13820
- * Optional decorative icon.
13821
- *
13822
- * @property {string} [errorMessage]
13823
- *
13824
- * @property {boolean} [disabled]
13825
- *
13826
- * @property {string} [dataCy]
13827
- * Override for auto-generated data-cy attribute.
13794
+ /**
13795
+ * @typedef {Object} DropdownProps
13796
+ *
13797
+ * @property {DropdownItem[]} [items]
13798
+ * Array of dropdown options.
13799
+ *
13800
+ * @property {string} [label]
13801
+ * Label above the dropdown.
13802
+ *
13803
+ * @property {boolean} [isValid]
13804
+ * Whether the field is valid.
13805
+ *
13806
+ * @property {boolean} [required]
13807
+ * Whether a * is appended.
13808
+ *
13809
+ * @property {string} [placeholder]
13810
+ *
13811
+ * @property {string} [name]
13812
+ *
13813
+ * @property {string} [className]
13814
+ *
13815
+ * @property {string} [title]
13816
+ *
13817
+ * @property {string|number} [tabIndex]
13818
+ *
13819
+ * @property {(event: DropdownChangeEvent) => void} [onChange]
13820
+ * Uses your preferred event signature: `event.target.name` / `event.target.value`.
13821
+ *
13822
+ * @property {string|number} [value]
13823
+ * Selected item value.
13824
+ *
13825
+ * @property {IconComponent} [Icon]
13826
+ * Optional decorative icon.
13827
+ *
13828
+ * @property {string} [errorMessage]
13829
+ *
13830
+ * @property {boolean} [disabled]
13831
+ *
13832
+ * @property {string} [dataCy]
13833
+ * Override for auto-generated data-cy attribute.
13828
13834
  */
13829
13835
 
13830
- /**
13831
- * @param {DropdownProps & React.HTMLAttributes<HTMLDivElement>} props
13836
+ /**
13837
+ * @param {DropdownProps & React.HTMLAttributes<HTMLDivElement>} props
13832
13838
  */
13833
13839
 
13834
13840
  function Dropdown(_ref) {
@@ -13981,28 +13987,28 @@ var c247_icon_only_2x_png_default = /*#__PURE__*/__webpack_require__.n(c247_icon
13981
13987
 
13982
13988
 
13983
13989
 
13984
- /**
13985
- * Props for the Navbar component.
13986
- *
13987
- * @typedef {Object} NavbarProps
13988
- *
13989
- * @property {React.ReactNode} [children]
13990
- * Content displayed on the right side of the navbar.
13991
- *
13992
- * @property {string} [logo]
13993
- * Custom logo URL. Defaults to toolkit logos.
13994
- *
13995
- * @property {string} [className]
13996
- * Extra class names for the navbar wrapper.
13997
- *
13998
- * @property {string} [maxWidth="1200px"]
13999
- * Max width of the inner content container.
13990
+ /**
13991
+ * Props for the Navbar component.
13992
+ *
13993
+ * @typedef {Object} NavbarProps
13994
+ *
13995
+ * @property {React.ReactNode} [children]
13996
+ * Content displayed on the right side of the navbar.
13997
+ *
13998
+ * @property {string} [logo]
13999
+ * Custom logo URL. Defaults to toolkit logos.
14000
+ *
14001
+ * @property {string} [className]
14002
+ * Extra class names for the navbar wrapper.
14003
+ *
14004
+ * @property {string} [maxWidth="1200px"]
14005
+ * Max width of the inner content container.
14000
14006
  */
14001
14007
 
14002
- /**
14003
- * Responsive Navbar with optional custom logo and region for child content.
14004
- *
14005
- * @param {NavbarProps & React.HTMLAttributes<HTMLElement>} props
14008
+ /**
14009
+ * Responsive Navbar with optional custom logo and region for child content.
14010
+ *
14011
+ * @param {NavbarProps & React.HTMLAttributes<HTMLElement>} props
14006
14012
  */
14007
14013
 
14008
14014
  const Navbar = _ref => {
@@ -14044,28 +14050,28 @@ var c247_loader_gif_default = /*#__PURE__*/__webpack_require__.n(c247_loader_gif
14044
14050
  // In production, it's better to let the parent control rendering to keep Loader focused on UI.
14045
14051
  // This change would improve testability, flexibility, and follow React best practices.
14046
14052
 
14047
- /**
14048
- * Props for the Loader component.
14049
- *
14050
- * @typedef {Object} LoaderProps
14051
- *
14052
- * @property {boolean} isLoading
14053
- * Determines whether the loader is visible.
14054
- *
14055
- * @property {string} [loaderText='loading...']
14056
- * Optional text displayed beneath the spinner.
14057
- *
14058
- * @property {React.ReactNode} [customLoader]
14059
- * Custom loader element (replaces default GIF).
14060
- *
14061
- * @property {string} [className]
14062
- * Extra class names applied to the outer container.
14053
+ /**
14054
+ * Props for the Loader component.
14055
+ *
14056
+ * @typedef {Object} LoaderProps
14057
+ *
14058
+ * @property {boolean} isLoading
14059
+ * Determines whether the loader is visible.
14060
+ *
14061
+ * @property {string} [loaderText='loading...']
14062
+ * Optional text displayed beneath the spinner.
14063
+ *
14064
+ * @property {React.ReactNode} [customLoader]
14065
+ * Custom loader element (replaces default GIF).
14066
+ *
14067
+ * @property {string} [className]
14068
+ * Extra class names applied to the outer container.
14063
14069
  */
14064
14070
 
14065
- /**
14066
- * Loader overlay that covers the entire screen.
14067
- *
14068
- * @param {LoaderProps & React.HTMLAttributes<HTMLDivElement>} props
14071
+ /**
14072
+ * Loader overlay that covers the entire screen.
14073
+ *
14074
+ * @param {LoaderProps & React.HTMLAttributes<HTMLDivElement>} props
14069
14075
  */
14070
14076
 
14071
14077
  function Loader(_ref) {
@@ -14123,44 +14129,50 @@ const XMarkIcon_ForwardRef = /*#__PURE__*/ external_commonjs_react_commonjs2_rea
14123
14129
 
14124
14130
 
14125
14131
 
14126
- /**
14127
- * Props for the Modal component.
14128
- *
14129
- * @typedef {Object} ModalProps
14130
- *
14131
- * @property {boolean} isOpen
14132
- * Whether the modal is visible.
14133
- *
14134
- * @property {() => void} [onClose]
14135
- * Callback fired when the modal requests to close (Escape key or close button).
14136
- *
14137
- * @property {boolean} [isLoading]
14138
- * Shows a loader overlay inside the modal content.
14139
- *
14140
- * @property {string} [loaderText]
14141
- * Text passed to the loader when isLoading = true.
14142
- *
14143
- * @property {React.ReactNode} [header]
14144
- * Content rendered in the modal header.
14145
- *
14146
- * @property {React.ReactNode} [body]
14147
- * Content rendered in the modal body.
14148
- *
14149
- * @property {React.ReactNode} [footer]
14150
- * Content rendered in the modal footer.
14151
- *
14152
- * @property {string} [className]
14153
- * Additional classes for the modal container.
14154
- *
14155
- * @property {string} [footerClassName]
14156
- *
14157
- * @property {string} [headerClassName]
14132
+ /**
14133
+ * Props for the Modal component.
14134
+ *
14135
+ * @typedef {Object} ModalProps
14136
+ *
14137
+ * @property {boolean} isOpen
14138
+ * Whether the modal is visible.
14139
+ *
14140
+ * @property {() => void} [onClose]
14141
+ * Callback fired when the modal requests to close (Escape key or close button).
14142
+ *
14143
+ * @property {boolean} [isLoading]
14144
+ * Shows a loader overlay inside the modal content.
14145
+ *
14146
+ * @property {string} [loaderText]
14147
+ * Text passed to the loader when isLoading = true.
14148
+ *
14149
+ * @property {React.ReactNode} [header]
14150
+ * Content rendered in the modal header.
14151
+ *
14152
+ * @property {boolean} [hideHeader]
14153
+ * If true, the header section is hidden.
14154
+ *
14155
+ * @property {React.ReactNode} [body]
14156
+ * Content rendered in the modal body.
14157
+ *
14158
+ * @property {React.ReactNode} [footer]
14159
+ * Content rendered in the modal footer.
14160
+ *
14161
+ * @property {boolean} [hideFooter]
14162
+ * If true, the footer section is hidden.
14163
+ *
14164
+ * @property {string} [className]
14165
+ * Additional classes for the modal container.
14166
+ *
14167
+ * @property {string} [footerClassName]
14168
+ *
14169
+ * @property {string} [headerClassName]
14158
14170
  */
14159
14171
 
14160
- /**
14161
- * Modal component written in JavaScript but fully typed using JSDoc.
14162
- *
14163
- * @param {ModalProps & React.HTMLAttributes<HTMLDivElement>} props
14172
+ /**
14173
+ * Modal component written in JavaScript but fully typed using JSDoc.
14174
+ *
14175
+ * @param {ModalProps & React.HTMLAttributes<HTMLDivElement>} props
14164
14176
  */
14165
14177
 
14166
14178
  const Modal = _ref => {
@@ -14172,11 +14184,13 @@ const Modal = _ref => {
14172
14184
  header,
14173
14185
  body,
14174
14186
  footer,
14187
+ hideHeader = false,
14188
+ hideFooter = false,
14175
14189
  className = "",
14176
14190
  footerClassName = "",
14177
14191
  headerClassName = ""
14178
14192
  } = _ref;
14179
- // Hook must be called unconditionally
14193
+ // Hook must be called unconditionally
14180
14194
  (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useEffect)(() => {
14181
14195
  const handleEscape = e => {
14182
14196
  if (e.key === "Escape" && isOpen) {
@@ -14187,7 +14201,7 @@ const Modal = _ref => {
14187
14201
  return () => document.removeEventListener("keydown", handleEscape);
14188
14202
  }, [isOpen, onClose]);
14189
14203
 
14190
- // Conditional render *after* hooks
14204
+ // Conditional render *after* hooks
14191
14205
  if (!isOpen) return null;
14192
14206
  return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
14193
14207
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50",
@@ -14204,7 +14218,7 @@ const Modal = _ref => {
14204
14218
  loaderText: loaderText,
14205
14219
  className: "relative z-20 h-[110px] w-[150px]"
14206
14220
  })
14207
- }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
14221
+ }), !hideHeader && /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
14208
14222
  className: "relative z-0 flex justify-end pb-3",
14209
14223
  children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("button", {
14210
14224
  onClick: onClose,
@@ -14225,7 +14239,7 @@ const Modal = _ref => {
14225
14239
  id: "modal-description",
14226
14240
  className: "relative z-0 my-4 text-[--color-text-weak]",
14227
14241
  children: body
14228
- }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
14242
+ }), !hideFooter && /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
14229
14243
  className: "relative z-0 text-[--color-text-weak] ".concat(footerClassName),
14230
14244
  children: footer
14231
14245
  })]
@@ -22930,62 +22944,62 @@ const C247Tasks = props => /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(task
22930
22944
 
22931
22945
 
22932
22946
 
22933
- /**
22934
- * All valid keys for heroicons.
22935
- * @typedef {keyof typeof HeroIcons} HeroIconName
22947
+ /**
22948
+ * All valid keys for heroicons.
22949
+ * @typedef {keyof typeof HeroIcons} HeroIconName
22936
22950
  */
22937
22951
 
22938
- /**
22939
- * All valid keys for your custom C247 icons.
22940
- * @typedef {keyof typeof C247Icons} C247IconName
22952
+ /**
22953
+ * All valid keys for your custom C247 icons.
22954
+ * @typedef {keyof typeof C247Icons} C247IconName
22941
22955
  */
22942
22956
 
22943
- /**
22944
- * Allowed icon name type (union of dynamic keys).
22945
- * @typedef {HeroIconName | C247IconName} IconName
22957
+ /**
22958
+ * Allowed icon name type (union of dynamic keys).
22959
+ * @typedef {HeroIconName | C247IconName} IconName
22946
22960
  */
22947
22961
 
22948
- /**
22949
- * Which icon library to use.
22950
- * @typedef {'hero'|'c247'} IconLibrary
22962
+ /**
22963
+ * Which icon library to use.
22964
+ * @typedef {'hero'|'c247'} IconLibrary
22951
22965
  */
22952
22966
 
22953
- /**
22954
- * Props for the generic Icon component.
22955
- *
22956
- * @typedef {Object} IconProps
22957
- *
22958
- * @property {IconName} name
22959
- * The dynamic icon name to render.
22960
- *
22961
- * @property {IconLibrary} [library='hero']
22962
- * Which icon set to render from.
22963
- *
22964
- * @property {number} [size=18]
22965
- * Icon size in pixels.
22966
- *
22967
- * @property {string} [className]
22968
- * Extra classes for styling.
22969
- *
22970
- * @property {string} [color]
22971
- * Optional CSS color override.
22967
+ /**
22968
+ * Props for the generic Icon component.
22969
+ *
22970
+ * @typedef {Object} IconProps
22971
+ *
22972
+ * @property {IconName} name
22973
+ * The dynamic icon name to render.
22974
+ *
22975
+ * @property {IconLibrary} [library='hero']
22976
+ * Which icon set to render from.
22977
+ *
22978
+ * @property {number} [size=18]
22979
+ * Icon size in pixels.
22980
+ *
22981
+ * @property {string} [className]
22982
+ * Extra classes for styling.
22983
+ *
22984
+ * @property {string} [color]
22985
+ * Optional CSS color override.
22972
22986
  */
22973
22987
 
22974
- /**
22975
- * Generic Icon component supporting HeroIcons and C247 icons.
22976
- *
22977
- * @param {IconProps & React.SVGProps<SVGSVGElement>} props
22988
+ /**
22989
+ * Generic Icon component supporting HeroIcons and C247 icons.
22990
+ *
22991
+ * @param {IconProps & React.SVGProps<SVGSVGElement>} props
22978
22992
  */
22979
22993
 
22980
- /**
22981
- * Generic Icon component supporting HeroIcons and C247 icons.
22982
- *
22983
- * Props:
22984
- * - name: string - icon name
22985
- * - library: 'hero' | 'c247' (default: 'hero')
22986
- * - size: number (default: 24)
22987
- * - className: string
22988
- * - color: string
22994
+ /**
22995
+ * Generic Icon component supporting HeroIcons and C247 icons.
22996
+ *
22997
+ * Props:
22998
+ * - name: string - icon name
22999
+ * - library: 'hero' | 'c247' (default: 'hero')
23000
+ * - size: number (default: 24)
23001
+ * - className: string
23002
+ * - color: string
22989
23003
  */
22990
23004
 
22991
23005
  const Icon = _ref => {
@@ -23020,46 +23034,46 @@ function SidebarItem_objectWithoutPropertiesLoose(r, e) { if (null == r) return
23020
23034
 
23021
23035
 
23022
23036
 
23023
- /**
23024
- * Icon props (importing from your Icon component typedef).
23025
- * @typedef {import('../Icon/Icon').IconProps} IconProps
23037
+ /**
23038
+ * Icon props (importing from your Icon component typedef).
23039
+ * @typedef {import('../Icon/Icon').IconProps} IconProps
23026
23040
  */
23027
23041
 
23028
- /**
23029
- * A sidebar leaf item (no children).
23030
- * @typedef {Object} SidebarItemMenu
23031
- * @property {string|number} key
23032
- * @property {string} name
23033
- * @property {string} [path]
23034
- * @property {string} [href]
23035
- * @property {IconProps} [iconProps]
23042
+ /**
23043
+ * A sidebar leaf item (no children).
23044
+ * @typedef {Object} SidebarItemMenu
23045
+ * @property {string|number} key
23046
+ * @property {string} name
23047
+ * @property {string} [path]
23048
+ * @property {string} [href]
23049
+ * @property {IconProps} [iconProps]
23036
23050
  */
23037
23051
 
23038
- /**
23039
- * Props for SidebarItem.
23040
- *
23041
- * @typedef {Object} SidebarItemProps
23042
- *
23043
- * @property {SidebarItemMenu} menu
23044
- * The menu item to render.
23045
- *
23046
- * @property {boolean} open
23047
- * Whether the sidebar is expanded.
23048
- *
23049
- * @property {boolean} [active=false]
23050
- * Whether this item is currently active.
23051
- *
23052
- * @property {keyof JSX.IntrinsicElements | React.ComponentType<any>} [as='div']
23053
- * Polymorphic wrapper: div, a, button, Link, etc.
23054
- *
23055
- * @property {() => void} [onClick]
23056
- * Fired when the item is clicked.
23052
+ /**
23053
+ * Props for SidebarItem.
23054
+ *
23055
+ * @typedef {Object} SidebarItemProps
23056
+ *
23057
+ * @property {SidebarItemMenu} menu
23058
+ * The menu item to render.
23059
+ *
23060
+ * @property {boolean} open
23061
+ * Whether the sidebar is expanded.
23062
+ *
23063
+ * @property {boolean} [active=false]
23064
+ * Whether this item is currently active.
23065
+ *
23066
+ * @property {keyof JSX.IntrinsicElements | React.ComponentType<any>} [as='div']
23067
+ * Polymorphic wrapper: div, a, button, Link, etc.
23068
+ *
23069
+ * @property {() => void} [onClick]
23070
+ * Fired when the item is clicked.
23057
23071
  */
23058
23072
 
23059
- /**
23060
- * Fully typed SidebarItem component.
23061
- *
23062
- * @param {SidebarItemProps & React.HTMLAttributes<HTMLElement>} props
23073
+ /**
23074
+ * Fully typed SidebarItem component.
23075
+ *
23076
+ * @param {SidebarItemProps & React.HTMLAttributes<HTMLElement>} props
23063
23077
  */
23064
23078
 
23065
23079
  function SidebarItem(_ref) {
@@ -23108,55 +23122,55 @@ function SidebarGroup_toPrimitive(t, r) { if ("object" != typeof t || !t) return
23108
23122
 
23109
23123
 
23110
23124
 
23111
- /**
23112
- * Icon props used by your dynamic Icon component (optional).
23113
- * @typedef {import('../Icon/Icon').IconProps} IconProps
23125
+ /**
23126
+ * Icon props used by your dynamic Icon component (optional).
23127
+ * @typedef {import('../Icon/Icon').IconProps} IconProps
23114
23128
  */
23115
23129
 
23116
- /**
23117
- * A single child menu item.
23118
- * @typedef {Object} SidebarChild
23119
- * @property {string|number} key
23120
- * @property {string} name
23121
- * @property {string} [path]
23122
- * @property {string} [href]
23123
- * @property {IconProps} [iconProps]
23130
+ /**
23131
+ * A single child menu item.
23132
+ * @typedef {Object} SidebarChild
23133
+ * @property {string|number} key
23134
+ * @property {string} name
23135
+ * @property {string} [path]
23136
+ * @property {string} [href]
23137
+ * @property {IconProps} [iconProps]
23124
23138
  */
23125
23139
 
23126
- /**
23127
- * Sidebar group object containing children.
23128
- * @typedef {Object} SidebarGroupMenu
23129
- * @property {string|number} key
23130
- * @property {string} name
23131
- * @property {SidebarChild[]} children
23132
- * @property {IconProps} [iconProps]
23140
+ /**
23141
+ * Sidebar group object containing children.
23142
+ * @typedef {Object} SidebarGroupMenu
23143
+ * @property {string|number} key
23144
+ * @property {string} name
23145
+ * @property {SidebarChild[]} children
23146
+ * @property {IconProps} [iconProps]
23133
23147
  */
23134
23148
 
23135
- /**
23136
- * Props for SidebarGroup component.
23137
- *
23138
- * @typedef {Object} SidebarGroupProps
23139
- *
23140
- * @property {SidebarGroupMenu} menu
23141
- * The group menu containing children.
23142
- *
23143
- * @property {boolean} open
23144
- * Whether the sidebar is currently expanded.
23145
- *
23146
- * @property {string|number|null} activeItem
23147
- * The currently selected menu item key.
23148
- *
23149
- * @property {(key: string|number) => void} onItemClick
23150
- * Handler fired when a child item is selected.
23151
- *
23152
- * @property {(open: boolean) => void} toggleSidebar
23153
- * Used to open the sidebar when clicking a group.
23149
+ /**
23150
+ * Props for SidebarGroup component.
23151
+ *
23152
+ * @typedef {Object} SidebarGroupProps
23153
+ *
23154
+ * @property {SidebarGroupMenu} menu
23155
+ * The group menu containing children.
23156
+ *
23157
+ * @property {boolean} open
23158
+ * Whether the sidebar is currently expanded.
23159
+ *
23160
+ * @property {string|number|null} activeItem
23161
+ * The currently selected menu item key.
23162
+ *
23163
+ * @property {(key: string|number) => void} onItemClick
23164
+ * Handler fired when a child item is selected.
23165
+ *
23166
+ * @property {(open: boolean) => void} toggleSidebar
23167
+ * Used to open the sidebar when clicking a group.
23154
23168
  */
23155
23169
 
23156
- /**
23157
- * Fully typed SidebarGroup component.
23158
- *
23159
- * @param {SidebarGroupProps & React.HTMLAttributes<HTMLDivElement>} props
23170
+ /**
23171
+ * Fully typed SidebarGroup component.
23172
+ *
23173
+ * @param {SidebarGroupProps & React.HTMLAttributes<HTMLDivElement>} props
23160
23174
  */
23161
23175
 
23162
23176
  function SidebarGroup(_ref) {
@@ -23239,29 +23253,29 @@ function Link(_ref) {
23239
23253
 
23240
23254
 
23241
23255
 
23242
- /**
23243
- * Shape of the user object
23244
- * @typedef {Object} ProfileCardUser
23245
- * @property {string} name
23246
- * @property {string} role
23256
+ /**
23257
+ * Shape of the user object
23258
+ * @typedef {Object} ProfileCardUser
23259
+ * @property {string} name
23260
+ * @property {string} role
23247
23261
  */
23248
23262
 
23249
- /**
23250
- * Props for ProfileCard.
23251
- *
23252
- * @typedef {Object} ProfileCardProps
23253
- *
23254
- * @property {ProfileCardUser} user
23255
- * The user object containing name + role.
23256
- *
23257
- * @property {string} [href]
23258
- * If provided, the card becomes a link instead of a div.
23263
+ /**
23264
+ * Props for ProfileCard.
23265
+ *
23266
+ * @typedef {Object} ProfileCardProps
23267
+ *
23268
+ * @property {ProfileCardUser} user
23269
+ * The user object containing name + role.
23270
+ *
23271
+ * @property {string} [href]
23272
+ * If provided, the card becomes a link instead of a div.
23259
23273
  */
23260
23274
 
23261
- /**
23262
- * ProfileCard with polymorphic wrapper (Link or div).
23263
- *
23264
- * @param {ProfileCardProps & React.HTMLAttributes<HTMLDivElement>} props
23275
+ /**
23276
+ * ProfileCard with polymorphic wrapper (Link or div).
23277
+ *
23278
+ * @param {ProfileCardProps & React.HTMLAttributes<HTMLDivElement>} props
23265
23279
  */
23266
23280
 
23267
23281
  function ProfileCard(_ref) {
@@ -23351,66 +23365,66 @@ var sidebar_update = injectStylesIntoStyleTag_default()(sidebar/* default */.A,
23351
23365
 
23352
23366
 
23353
23367
 
23354
- /**
23355
- * A single menu item (no children).
23356
- * @typedef {Object} SidebarMenuItem
23357
- * @property {string|number} key
23358
- * @property {string} name
23359
- * @property {string} [icon] // optional icon name depending on your app
23360
- * @property {string} [href] // optional link target
23368
+ /**
23369
+ * A single menu item (no children).
23370
+ * @typedef {Object} SidebarMenuItem
23371
+ * @property {string|number} key
23372
+ * @property {string} name
23373
+ * @property {string} [icon] // optional icon name depending on your app
23374
+ * @property {string} [href] // optional link target
23361
23375
  */
23362
23376
 
23363
- /**
23364
- * A grouped menu entry with children.
23365
- * @typedef {Object} SidebarMenuGroup
23366
- * @property {string|number} key
23367
- * @property {string} name
23368
- * @property {SidebarMenuItem[]} children
23377
+ /**
23378
+ * A grouped menu entry with children.
23379
+ * @typedef {Object} SidebarMenuGroup
23380
+ * @property {string|number} key
23381
+ * @property {string} name
23382
+ * @property {SidebarMenuItem[]} children
23369
23383
  */
23370
23384
 
23371
- /**
23372
- * A full menu entry (either group or leaf item).
23373
- * @typedef {SidebarMenuItem | SidebarMenuGroup} SidebarMenu
23385
+ /**
23386
+ * A full menu entry (either group or leaf item).
23387
+ * @typedef {SidebarMenuItem | SidebarMenuGroup} SidebarMenu
23374
23388
  */
23375
23389
 
23376
- /**
23377
- * Minimal shape expected for SidebarProfile.
23378
- * @typedef {Object} SidebarUser
23379
- * @property {string|number} id
23380
- * @property {string} name
23381
- * @property {string} role
23382
- * @property {string} [avatar] // optional depending on your design
23390
+ /**
23391
+ * Minimal shape expected for SidebarProfile.
23392
+ * @typedef {Object} SidebarUser
23393
+ * @property {string|number} id
23394
+ * @property {string} name
23395
+ * @property {string} role
23396
+ * @property {string} [avatar] // optional depending on your design
23383
23397
  */
23384
23398
 
23385
- /**
23386
- * Props for Sidebar.
23387
- *
23388
- * @typedef {Object} SidebarProps
23389
- *
23390
- * @property {SidebarMenu[]} menus
23391
- * All sidebar menu items (groups + items).
23392
- *
23393
- * @property {SidebarUser} user
23394
- * The current logged-in user.
23395
- *
23396
- * @property {string|number|null} [activeItem]
23397
- * Key of the currently selected item.
23398
- *
23399
- * @property {(key: string|number) => void} [onItemClick]
23400
- * Fired when a menu item is clicked.
23401
- *
23402
- * @property {string} [logo]
23403
- * Optional logo override.
23404
- *
23405
- * @property {string} [searchValue='']
23406
- *
23407
- * @property {(value: string) => void} [onSearchChange]
23399
+ /**
23400
+ * Props for Sidebar.
23401
+ *
23402
+ * @typedef {Object} SidebarProps
23403
+ *
23404
+ * @property {SidebarMenu[]} menus
23405
+ * All sidebar menu items (groups + items).
23406
+ *
23407
+ * @property {SidebarUser} user
23408
+ * The current logged-in user.
23409
+ *
23410
+ * @property {string|number|null} [activeItem]
23411
+ * Key of the currently selected item.
23412
+ *
23413
+ * @property {(key: string|number) => void} [onItemClick]
23414
+ * Fired when a menu item is clicked.
23415
+ *
23416
+ * @property {string} [logo]
23417
+ * Optional logo override.
23418
+ *
23419
+ * @property {string} [searchValue='']
23420
+ *
23421
+ * @property {(value: string) => void} [onSearchChange]
23408
23422
  */
23409
23423
 
23410
- /**
23411
- * Fully typed Sidebar component.
23412
- *
23413
- * @param {SidebarProps & React.HTMLAttributes<HTMLDivElement>} props
23424
+ /**
23425
+ * Fully typed Sidebar component.
23426
+ *
23427
+ * @param {SidebarProps & React.HTMLAttributes<HTMLDivElement>} props
23414
23428
  */
23415
23429
 
23416
23430
  function Sidebar(_ref) {
@@ -23495,6 +23509,160 @@ function Sidebar(_ref) {
23495
23509
  })
23496
23510
  });
23497
23511
  }
23512
+ ;// ./src/components/BarLayout/BarLayout.jsx
23513
+
23514
+ /**
23515
+ * @typedef {Object} BarLayoutProps
23516
+ * @property {React.ReactNode} [left] Left content area
23517
+ * @property {React.ReactNode} [center] Center content area
23518
+ * @property {React.ReactNode} [right] Right content area
23519
+ * @property {string} [className] Optional wrapper class
23520
+ */
23521
+
23522
+ /**
23523
+ * @param {BarLayoutProps} props
23524
+ */
23525
+
23526
+ const BarLayout = _ref => {
23527
+ let {
23528
+ left,
23529
+ center,
23530
+ right,
23531
+ className = ""
23532
+ } = _ref;
23533
+ return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("div", {
23534
+ className: "flex w-full items-center justify-between ".concat(className),
23535
+ children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
23536
+ className: "flex-1",
23537
+ children: left
23538
+ }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
23539
+ className: "flex-auto text-center",
23540
+ children: center
23541
+ }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
23542
+ className: "flex flex-1 justify-end",
23543
+ children: right
23544
+ })]
23545
+ });
23546
+ };
23547
+ /* harmony default export */ const BarLayout_BarLayout = (BarLayout);
23548
+ ;// ./src/components/Header/Header.jsx
23549
+
23550
+
23551
+
23552
+ /**
23553
+ * @typedef {Object} HeaderProps
23554
+ * @property {string} title Header title text left slot
23555
+ * @property {React.ReactNode} [center] center content slot
23556
+ * @property {React.ReactNode} [right] Right content slot
23557
+ * @property {string} [className] Optional wrapper class
23558
+ */
23559
+
23560
+ /**
23561
+ * @param {HeaderProps} props
23562
+ */
23563
+
23564
+ const Header = _ref => {
23565
+ let {
23566
+ title,
23567
+ center,
23568
+ right
23569
+ } = _ref;
23570
+ return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
23571
+ className: "w-full px-4 py-2",
23572
+ children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(BarLayout_BarLayout, {
23573
+ left: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(Text, {
23574
+ variant: "h3",
23575
+ children: title
23576
+ }),
23577
+ center: center,
23578
+ right: right
23579
+ })
23580
+ });
23581
+ };
23582
+ /* harmony default export */ const Header_Header = (Header);
23583
+ ;// ./src/components/Footer/Footer.jsx
23584
+
23585
+
23586
+ /**
23587
+ * @typedef {Object} FooterProps
23588
+ * @property {React.ReactNode} [left] Left footer content
23589
+ * @property {React.ReactNode} [center] Center footer content
23590
+ * @property {React.ReactNode} [right] Right footer content
23591
+ * @property {string} [className] Optional wrapper class
23592
+ */
23593
+
23594
+ /**
23595
+ * @param {FooterProps} props
23596
+ */
23597
+
23598
+ const Footer = _ref => {
23599
+ let {
23600
+ left,
23601
+ center,
23602
+ right
23603
+ } = _ref;
23604
+ return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("div", {
23605
+ className: "w-full px-4 py-2",
23606
+ children: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(BarLayout_BarLayout, {
23607
+ left: left,
23608
+ center: center,
23609
+ right: right
23610
+ })
23611
+ });
23612
+ };
23613
+ /* harmony default export */ const Footer_Footer = (Footer);
23614
+ ;// ./src/components/PageTemplate/PageTemplate.jsx
23615
+
23616
+
23617
+
23618
+
23619
+ /**
23620
+ * @typedef {Object} PageTemplateProps
23621
+ *
23622
+ * @property {string} [headerTitle] Title passed to left Header
23623
+ * @property {React.ReactNode} [headerCenter] Center slot of Header
23624
+ * @property {React.ReactNode} [headerRight] Right slot of Header
23625
+ *
23626
+ * @property {React.ReactNode} [footerLeft] Left slot of Footer
23627
+ * @property {React.ReactNode} [footerCenter] Center slot of Footer
23628
+ * @property {React.ReactNode} [footerRight] Right slot of Footer
23629
+ *
23630
+ * @property {React.ReactNode} children Main page content
23631
+ * @property {string} [className] Optional wrapper class
23632
+ */
23633
+
23634
+ /**
23635
+ * @param {PageTemplateProps} props
23636
+ */
23637
+
23638
+ const PageTemplate = _ref => {
23639
+ let {
23640
+ headerTitle,
23641
+ headerCenter,
23642
+ headerRight,
23643
+ footerLeft,
23644
+ footerCenter,
23645
+ footerRight,
23646
+ children,
23647
+ className = ""
23648
+ } = _ref;
23649
+ return /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsxs)("div", {
23650
+ className: "flex min-h-screen w-full flex-col ".concat(className),
23651
+ children: [/*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(Header_Header, {
23652
+ title: headerTitle,
23653
+ center: headerCenter,
23654
+ right: headerRight
23655
+ }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)("main", {
23656
+ className: "flex-1 p-6",
23657
+ children: children
23658
+ }), /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(Footer_Footer, {
23659
+ left: footerLeft,
23660
+ center: footerCenter,
23661
+ right: footerRight
23662
+ })]
23663
+ });
23664
+ };
23665
+ /* harmony default export */ const PageTemplate_PageTemplate = (PageTemplate);
23498
23666
  ;// ./src/index.js
23499
23667
 
23500
23668
 
@@ -23510,6 +23678,12 @@ function Sidebar(_ref) {
23510
23678
 
23511
23679
 
23512
23680
 
23681
+
23682
+
23683
+
23684
+
23685
+
23686
+
23513
23687
 
23514
23688
 
23515
23689
  module.exports = __webpack_exports__;